gpt4 book ai didi

ruby-on-rails - Rails 4 通过渲染部分传递多个变量

转载 作者:数据小太阳 更新时间:2023-10-29 07:05:05 25 4
gpt4 key购买 nike

这个问题已经被问过很多次了,但我无法让它工作。

我想像这样将多个变量传递给我的部分...

<%= f.fields_for :materials do |builder| %>
<%= render partial: 'material_fields', locals: {f: builder, feed: true} %>
<% end %>

这是部分 material_fields.html.erb 中的一行,我希望 f.select 预先填充 Yes 选项或“true”值。 (有些情况下我希望它是假的)

<%=f.select :is_feed, options_for_select([['Yes', true], ['No', false]], feed )%>

f 可用并且有效,而 feed 不可用......我不知道为什么这不起作用。我在 select 语句之外尝试了 <%= feed %>,但它仍然不起作用。

在这两种情况下,我都得到未定义的局部变量或方法“feed”

有人知道我的语法有什么问题吗?

最佳答案

我想通了是什么问题。

我有

<%= f.fields_for :materials do |builder| %>
<%= render partial: 'material_fields', locals: {f: builder, feed: true } %>
<% end %>

后来我在同一个 View 中

<%= f.fields_for :materials do |builder| %>
<%= render 'material_fields', f: builder %>
<% end %>

显然,当从一个文件渲染相同的部分两次时,参数被弄乱了。进一步测试可以隔离问题,但我没有精力或时间。

解决方案:在两个渲染器上声明相同的参数。值可以不同,但​​它们按预期工作。

<%= f.fields_for :materials do |builder| %>
<%= render partial: 'material_fields', locals: {f: builder, feed: true } %>
<% end %>

<%= f.fields_for :materials do |builder| %>
<%= render partial: 'material_fields', locals: {f: builder, feed: false } %>
<% end %>

关于ruby-on-rails - Rails 4 通过渲染部分传递多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27020989/

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