2016-11-28 7 views
1

Я пытаюсь поместить ff.inputs в f.inputs в отношении двойного вложенного объекта, но ff.inputs не отображается. Когда я помещаю его в частичное, оно появляется, но дублирует поля.Active Admin помещает входы во входы

Кто-нибудь знает об этом?

Форма:

form do |f| 
f.inputs 'Brand Details' do 
    f.input :name 
    f.input :heritage 
end 

f.inputs 'Logo', for: [:logo, f.object.logo || Image.new ] do |ff| 
    ff.input :file, as: :file, hint: (ff.template.image_tag(ff.object.file.url) if ff.object.file?) 
    ff.input :_destroy, as: :boolean, label: 'Remove' unless ff.object.new_record? 
end 


# render partial: 'banner_form' 

f.inputs 'Heritage Banner', for: [:heritage_banner, f.object.heritage_banner || Banner.new] do |hb| 
    hb.input :name 
    hb.inputs 'Desktop Image*', for: [:desktop_image, hb.object.desktop_image || Image.new ] do |di| 
    di.input :file, label: 'Image', as: :file, hint: (di.template.image_tag(di.object.file.url) if di.object.file?) 
    di.input :_destroy, as: :boolean, :label => 'Remove' unless di.object.new_record? 
    end 
    hb.inputs 'Mobile Image*', for: [:mobile_image, hb.object.mobile_image || Image.new ] do |mi| 
    mi.input :file, label: 'Image', as: :file, hint: (mi.template.image_tag(mi.object.file.url) if mi.object.file?) 
    mi.input :_destroy, as: :boolean, :label => 'Remove' unless mi.object.new_record? 
    end 
    hb.input :video_url 
end 

f.inputs 'Header Banner', for: [:header_banner, f.object.header_banner || Banner.new] do |hb| 
    hb.input :name 
    hb.inputs 'Desktop Image*', for: [:desktop_image, hb.object.desktop_image || Image.new ] do |di| 
    di.input :file, label: 'Image', as: :file, hint: (di.template.image_tag(di.object.file.url) if di.object.file?) 
    di.input :_destroy, as: :boolean, :label => 'Remove' unless di.object.new_record? 
    end 
    hb.inputs 'Mobile Image*', for: [:mobile_image, hb.object.mobile_image || Image.new ] do |mi| 
    mi.input :file, label: 'Image', as: :file, hint: (mi.template.image_tag(mi.object.file.url) if mi.object.file?) 
    mi.input :_destroy, as: :boolean, :label => 'Remove' unless mi.object.new_record? 
    end 
    hb.input :video_url 
end 

f.actions 
end 

При использовании парциальное это он:

<%= semantic_form_for [:admin, @brand] do |f| %> 
<%= f.inputs 'Heritage Banner', for: [:heritage_banner, f.object.heritage_banner || Banner.new] do |hb| %> 
    <%= hb.input :name %> 
    <%= hb.inputs 'Desktop Image*', for: [:desktop_image, hb.object.desktop_image || Image.new ] do |di| %> 
     <%= di.input :file, label: 'Image', as: :file, hint: (di.template.image_tag(di.object.file.url) if di.object.file?) %> 
     <%= di.input :_destroy, as: :boolean, :label => 'Remove' unless di.object.new_record? %> 
    <% end %> 

    <%= hb.inputs 'Mobile Image*', for: [:mobile_image, hb.object.mobile_image || Image.new ] do |mi| %> 
     <%= mi.input :file, label: 'Image', as: :file, hint: (mi.template.image_tag(mi.object.file.url) if mi.object.file?) %> 
     <%= mi.input :_destroy, as: :boolean, :label => 'Remove' unless mi.object.new_record? %> 
    <% end %> 

    <%= hb.input :video_url %> 
<% end %> 

<%= f.inputs 'Header Banner', for: [:header_banner, f.object.header_banner || Banner.new] do |hb| %> 
    <%= hb.input :name %> 
    <%= hb.inputs 'Desktop Image*', for: [:desktop_image, hb.object.desktop_image || Image.new ] do |di| %> 
     <%= di.input :file, label: 'Image', as: :file, hint: (di.template.image_tag(di.object.file.url) if di.object.file?) %> 
     <%= di.input :_destroy, as: :boolean, :label => 'Remove' unless di.object.new_record? %> 
    <% end %> 

    <%= hb.inputs 'Mobile Image*', for: [:mobile_image, hb.object.mobile_image || Image.new ] do |mi| %> 
     <%= mi.input :file, label: 'Image', as: :file, hint: (mi.template.image_tag(mi.object.file.url) if mi.object.file?) %> 
     <%= mi.input :_destroy, as: :boolean, :label => 'Remove' unless mi.object.new_record? %> 
    <% end %> 

    <%= hb.input :video_url %> 
<% end %> 

ответ

0

Мой исправить это было просто поставить все в виде частичного и просто вызвать частичное.

Таким образом, в активном админ я сделал:

form partial: 'form' 

и принесли в бренд подробно поля и логотип в частично.

Это также позволило мне вызвать частичные изображения изображений и баннеров, которые я мог раньше.

Все еще дайте мне знать, если есть лучший способ сделать это.