这是我的_form_item部分,其中我使用了symbol:order_item
<%= simple_form_for :order_item do |f| %>
.....
<% end %>
这是我想要渲染那部分的视图:
<%= content_tag_for :tr , @order.order_items do |i| %>
<div class="hide">
<%= render :partial => "form_item" %>
</div>
<% end %>
如何将“i”对象传递给:order_item?
更新 我更喜欢保持“:order_item”而不是将其改为“foo”。
答案 0 :(得分:0)
您可以将i
作为本地人传递给部分,如下所示:
<%= render :partial => "form_item", :i => i %>
您可以在i
部分内找到_form_item
。
更新:
传递给partials的局部变量是变量而不是符号。您可以保留名称order_item
,如下所示:
<%= render :partial => "form_item", :order_item => i %>
并按以下步骤更新您的order_item
部分:
<%= simple_form_for order_item do |f| %>
.....
<% end %>
我想我明白为什么你不想将:order_item
改为order_item
。我认为你将不得不更新你的其他调用以传入本地变量order_item
,而你正在调用这个部分。
答案 1 :(得分:0)
你应该:
<%= render partial: 'form_item', locals: {order_item: i} %>
或简写:
<%= render 'form_item', order_item: i %>
在form_item
部分你应该:
<%= simple_form_for order_item do |f| %>
...
答案 2 :(得分:0)
只做
<%= simple_form_for item do |f| %>
.
.
<% end %>
并渲染部分通道
<%= render :partial => 'form_item', :locals => { :item => i } %>