将变量传递给简单形式符号

时间:2013-08-02 15:29:05

标签: ruby-on-rails

这是我的_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”。

3 个答案:

答案 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 } %>