У меня есть модель Page
, в которой много TextBlock
:
class Page < ApplicationRecord
has_many :text_blocks, as: :textable, dependent: :destroy
accepts_nested_attributes_for :text_blocks
end
В форме, где можно редактировать страницу, я должен отобразить 3 текстовых блока в верхней части формы.и 3 текстовых блока в нижней части формы.Вот код на мой взгляд ...
Верхние текстовые блоки:
<%= render 'shared/admin/form-fields/text-blocks-form', f: f, number: 3, value: true %>
Нижние текстовые блоки:
<%= render 'shared/admin/form-fields/text-blocks-form', f: f, number: 2, value: false %>
А вот частичное text-blocks-form
:
<div class="form-group">
<div class="row">
<div class="col-lg-12 text-blocks">
<div class="row">
<% number.times { f.object.text_blocks.where(upper_position: value).build } unless f.object.text_blocks.where(upper_position: value).any? %>
<%= f.fields_for :text_blocks do |input| %>
<div class="<%= "col-lg-#{cells(number)}" %>">
<%= render 'shared/admin/form-fields/text-blocks-fields', f: input, value: value %>
</div>
<% end %>
</div>
</div>
</div>
</div>
Верхние текстовые блоки построены, как и ожидалось, есть 3 блока, но в нижней части формы есть 5 блоков вместо 2Кажется, что это просто добавить 3 + 2. Есть ли способ для build
текстовых блоков, как это было описано выше?Спасибо вперед.