You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7局部视图传递局部变量触发NameError问题求助

解决Rails集合局部视图传递额外变量的问题

当你通过collection渲染局部视图时,额外的局部变量需要包裹在locals哈希中,而非直接作为平级参数传递。你当前的写法未将main: true放入locals,导致局部视图无法识别该变量。

修正后的渲染代码:

<%= render partial: "rental_categories", collection: @equipment_types, as: :equipment_type, locals: { main: true }, cached: true %>

原因说明:

Rails处理集合渲染时,仅对collection、as这类特定参数做特殊处理,自定义局部变量必须通过locals哈希传递,Rails才会将这些变量注入局部视图上下文,你就能在局部中正常使用main变量了。

你的局部视图中button_to的代码无需修改,只要渲染时传递方式正确,就能正常获取main的值。

内容的提问来源于stack exchange,提问作者Jamie Crone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:12:45