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
相关产品推荐
相关产品推荐

