gpt4 book ai didi

ruby-on-rails-3 - 部分本地只能使用 local_assigns 访问,不按名称公开

转载 作者:行者123 更新时间:2023-12-03 23:37:32 24 4
gpt4 key购买 nike

我将两个局部变量从 View ERB 传递到局部变量。两个本地人都在 local_assigns 中成功传递。但是,我只能通过部分中的局部变量名称使用 FormBuilder。另一个值在我的部分中可用作 local_assigns[:disable_edits],但不能用作 disable_edits。

_form.html.erb

    <div>
<%= f.fields_for :panels do |builder| %>
<%= render "panel_fields", :f => builder, :disable_edits => true %>
<% end %>
</div>

_panel_fields.html.erb

<div>
<p>
<%= local_assigns[:disable_edits] %>
</p>
<p>
<%#= disable_edits ? 'disable edits true' : 'disable edits false' %>
</p>
<p>
<%= local_assigns.keys %>
</p>

local_assigns[:disable_edits] 导致显示“true”。

local_assigns.keys 导致显示“[:f, :disable_edits, :panel_fields]”。

取消注释三元语句会导致“#<#:0x4d58768> 的未定义局部变量或方法‘disable_edits’”

我按照我所理解的最新建议的 Rails 语法进行操作,但尝试使用 :partial=>、:locals=>、:as=> 等进行操作,但无济于事。我也不认为我以任何方式将其作为可选参数,所以很多关于使用 has_key 与 nil 进行测试的信息?没有帮助我。我的理解是 local_assigns 中的所有内容都应该像局部变量一样公开为与散列键同名的局部变量。

我现在正在使用 local_assigns[:disable_edits],但我想了解正在发生的事情并纠正错误,以便我可以使用更传统的语法。谢谢!

最佳答案

尝试使用

render :partial => "panel_fields", :locals => {:f => builder, :disable_edits => true }

关于ruby-on-rails-3 - 部分本地只能使用 local_assigns 访问,不按名称公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10539475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com