0

これがコントローラーの私のビューでの私のfields_forブロックですeditorders

  <%= 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 %>

これが意味をなすことを願っています:)ありがとう。

4

1 に答える 1

3

|builder| からオブジェクトにアクセスできます。その上で .object を呼び出すことによって

<%= f.fields_for :order_fields do |builder| %>
  <%= builder.object.name %>
  <%= builder.text_field :value %>
<% end %>
于 2011-11-01T03:14:58.390 に答える