2016-11-28 39 views
1

我想把一个f.inputs放在一个双重嵌套对象的f.inputs中,但是ff.inputs不显示出来。当我把它放在一个部分时,它显示出来,但是重复了这些字段。主动管理员把输入放入输入

有没有人知道解决这个问题的方法?

形式:

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' 

,并带来了品牌的详细信息字段和标识到部分。

这也允许我调用我以前可以调用的图像和横幅部分。

让我知道是否有更好的方法来做到这一点。