- Я не могу вызвать значение атрибута редактируемой записи записи
Вы можете получить объект, обернутый построителем форм или конструктором ввода через метод объекта:
<div class='grid-x grid-margin-x'>
<%= f.fields_for :productunits do |price_fields| %>
<div class='cell small-2 text-right'>
<h4><%= price_fields.object.unit.name %> </h4>
<% if price_fields.object.unit.capacity == 2 %
2 <%= price_fields.label :price2 %> <%= price_fields.number_field :price2 %>
<% end %>
</div>
<% end %>
</div>
2 Естественный разрыв в дочерних записях недоступен тегам html для форматирования ...
fields_for
просто перебирает дочерние записи. Это просто петля. Я предполагаю, что вы только что испортили html как блуждающий тег </div>
или что-то, что вы делаете с <%= label %>
.
, отправив форму, выдает ошибку. быть справедливым в отношении новой записи, но определенно не ожидается при редактировании существующей.
Вы не передаете идентификатор для устройства. Rails не делает это автоматически. Либо используйте скрытый ввод, либо помощники по сбору.
<div class='grid-x grid-margin-x'>
<%= f.fields_for :productunits do |price_fields| %>
<div class='cell small-2 text-right'>
<h4><%= price_fields.object.unit.name %> </h4>
<% if price_fields.object.unit.capacity == 2 %
2 <%= price_fields.label :price2 %> <%= price_fields.number_field :price2 %>
<% end %>
<%= price_fields.collection_select(:unit_id, Unit.all, :id, :name) %>
# or
<%= price_fields.hidden_field(:unit_id) %>
</div>
<% end %>
</div>
В примечании вы должны указать свою модель ProductUnit
, таблицу product_units
и использовать product_unit
везде. См. Руководство по стилю Ruby .