2013-10-10 3 views
0

Я хочу использовать ActiveAdmin :: FormBuilder, потому что мне нравится способ создания вложенных моделей (в основном - его метод has_many, который генерирует приятные кнопки со встроенным javascript для легкого создания & уничтожить вложенные объекты).Настроить ActiveAdmin :: FormBuilder

Однако я хочу отредактировать форму самостоятельно, потому что, по-видимому, по умолчанию она занимает слишком много места.

Кто-нибудь знает, есть ли хороший способ настроить вывод дизайна формы, но сохранить эти вложенные методы для вложенных объектов?

Вот пример кода с комментариями:

<%= semantic_form_for @item, builder: ActiveAdmin::FormBuilder do |f| %> 

    <% f.inputs "Item Details" do %> 
     <% f.input :keywords %> 
     <% f.input :description %> 
    <% end %> 

    <% f.inputs "Features", :id => "item_features" do %> 
     <% f.has_many :features, :header => "" do |feature| %> 
     <!-- all these fields are generated in separate rows, I want to fit them all to one row - so need to add some classes--> 
     <% feature.input :name, :label => "Feature Name" %> 
     <% feature.input :value, :label => "Feature Value" %> 
     <% feature.input :_destroy, :as=>:boolean, :required => false, :label=>'Remove Feature' %> 
     <% end %> 
    <% end %> 

    <% f.inputs "Options", :id => "item_options" do %> 
     <% f.has_many :options, :header => "" do |option| %> 
     <!-- same thing here --> 
     <% option.input :name, :label => "Option Name" %> 
     <% option.input :_destroy, :as=>:boolean, :required => false, :label=>'Remove Option' %> 
     <% end %> 
    <% end %> 

    <% f.actions %> <!-- here I want to add some classes to each button --> 
    <% end %> 
+0

Я считаю, что если вы используете 'ActiveAdmin :: FormBuilder',' f.has_many' должен быть доступен для вашей формы (https://github.com/gregbell/active_admin/blob/9f6b03030667801adc58af4aba9ae56160c3b0b2/lib/active_admin/form_builder. гь # L44). Ваш код выше не работает? Если нет, то какие ошибки вы видите? –

+0

Код выше работает. Мне просто не нравится дизайн, который он создает. До сих пор моя лучшая идея заключалась в том, чтобы скопировать модуль FormBuilder и вручную внести необходимые изменения. –

+0

Возможно, вам нужны только правила CSS? – seanlinsley

ответ

0

После нескольких дней исследований - я сделал наиболее очевидные изменения с помощью CSS.

Для более глубоких изменений, которые я нашел этот пост: Configure the label of Active Admin has_many

Также думать, возможно будет использовать JavaScript, чтобы сделать некоторые изменения на странице загрузки.

Смежные вопросы