rails 3.1 fields_for

时间:2011-11-01 03:09:56

标签: ruby-on-rails ruby-on-rails-3 forms ruby-on-rails-3.1 fields-for

以下是fields_for控制器的edit视图中的orders阻止

  <%= form_for @order do |f| %>

    <%= f.fields_for :order_fields do |builder| %>
      <%= builder.text_field :value %>
    <% end %>

  <% end %>

我遇到的问题是我想使用每个循环来显示循环中的信息,但是我得到的表单不止一次显示。这是因为我使用了accepts_nested_attributes_for :order_fields语句。

在我的order_fields表中,有一个名为name的列,我想在表单中显示信息。我怎样才能做到这一点?我数据库中value列的信息已显示在我的表单中。

如果我这样做

<%= f.fields_for :order_fields do |builder| %>
  <%= builder.text_field :name %>
  <%= builder.text_field :value %>
<% end %>

它显示彼此相邻的两列信息,但我希望:name信息不在文本框或任何内容中。我希望它显示为好像我要做的事情:

<% @order.order_fields.each do |field| %>
  <%= field.name %>
<% end %>

我希望这有点道理:) 谢谢。

1 个答案:

答案 0 :(得分:3)

您可以从| builder |访问该对象通过调用.object就可以了

<%= f.fields_for :order_fields do |builder| %>
  <%= builder.object.name %>
  <%= builder.text_field :value %>
<% end %>