0

这是我使用符号的 _form_item 部分: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" 之类的东西。

4

3 回答 3

0

您可以i作为本地人传递给部分,如下所示:

<%= render :partial => "form_item", :i => i %>

并且您将i在部分可用_form_item

更新:

传递给局部变量的局部变量是变量而不是符号。您可以保留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,无论您何时调用此部分。

于 2013-08-02T15:30:37.737 回答
0

你应该有:

<%= render partial: 'form_item', locals: {order_item: i} %>

或简写:

<%= render 'form_item', order_item: i %>

在你的form_item部分你应该有:

<%= simple_form_for order_item do |f| %>
...
于 2013-08-02T15:30:50.467 回答
0

做就是了

<%= simple_form_for item do |f| %>
.
.
<% end %>

并渲染部分通孔

<%= render :partial => 'form_item', :locals => { :item => i } %>
于 2013-08-02T15:31:51.177 回答