рельсы 3.1 fields_for - PullRequest
       23

рельсы 3.1 fields_for

0 голосов
/ 01 ноября 2011

Вот мой 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 Ответ

3 голосов
/ 01 ноября 2011

Вы можете получить доступ к объекту вне | builder |позвонив .object на него

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