隐藏字段,在视图中创建本地实例变量,好还是坏?

时间:2011-04-27 17:40:39

标签: ruby-on-rails-3

这是我的部分:

<%= form_for(item, :url => update_cart_path) do |item_form| %>
<tr>
    <% @variant = item.variant %>
    <%= hidden_field(:variant, :id) %>
    <td width="300"><%=item.variant.product.name%> <%= "(" + variant_options(item.variant) + ")" unless item.variant .option_values.empty? %></td>
    <td class="price"><%= number_to_currency item.price %></td>
    <td class="qty"><%=item.quantity%></td>
    <td class="total"><span><%= number_to_currency (item.price * item.quantity)%></span></td>
    <td class="edit"><%= link_to(image_tag('/images/admin/icons/edit.png'), '#', :class => 'edit') %>
    </td>
</tr>
<% end %>

我称之为:

<%= render :partial =>'shared/cart/line_item' , :collection => @order.line_items, :as => :item %>

我必须为hidden_​​field创建一个局部变量@variant才能工作,并且因为在控制器中创建它没有任何意义,我在视图中创建了实例局部变量。 有更好的设计吗?

1 个答案:

答案 0 :(得分:0)

如果您只是为hidden_field帮助程序执行此操作,则可以使用hidden_field_tag代替:

<%= hidden_field_tag('variant', item.variant.id) %>