У меня была похожая проблема в одном из моих проектов activeadmin.Элемент fieldset
использует элементы li
, которые можно стилизовать.Так что проверьте класс, который использует форма, и затем добавьте что-то вроде этого в конец app/assets/stylesheets/active_admin.scss
.Здесь я предполагаю, что класс css для окружающей формы равен line_items
.Уловка - это свойство inline-block
элемента li
, однако вам, возможно, придется поработать со свойствами css.
form.line_items fieldset.has_many_fields ol > li > label { display: none; }
form.line_items fieldset.has_many_fields:first-child ol > li > label { display: block; }
form.line_items fieldset.has_many_fields ol > li { display: inline-block; padding: 5px; width: 18%; float:left;}
form.line_items fieldset.has_many_fields ol > li.has_many_delete { margin-top:20px; margin-left: -36px;}
form.line_items fieldset.has_many_fields ol > li > label { width: auto; padding-right: 10px;}
form.line_items fieldset.has_many_fields ol > li > div > label.label { width: auto; padding-right: 10px;}
form.line_items fieldset.has_many_fields ol > li > a.has_many_remove { margin-top:20px; }
form.line_items fieldset.has_many_fields ol > li > p.inline-errors { margin: 0.3em 0 0 0; }
Это сработает, но вам придется переписать форму следующим образом:
f.inputs 'Line Item/s' do
f.has_many :payment_line_items, heading: false do |form|
form.input :description, label: false
form.input :quantity, label: false
form.input :unit_price, label: false
form.input :amount, label: false
end
end
Если вы хотите, чтобы пользователь мог уничтожать позиции, вам необходимо настроить свои ассоциации и allow_params для него следующим образом:
В вашей модели
accepts_nested_attributes_for :line_items, :allow_destroy => true
А в блоке реестра activeadmin:
permit_params \
:line_items_attributes => [:id, :description, :quantity, :unit_price, :amount, :_destroy]
Удачи!