我有以下情况:
cmsasset模型,它是使用paperclip上传和存储的图像容器,可以在habtm连接表方法中附加cmsassets的位置模型
location接受cmsassets的嵌套属性,这里是确切的模型代码:
accepts_nested_attributes_for :cmsassets, :allow_destroy => true
现在,当我尝试在表单代码中使用以下内容时,不会显示嵌套表单:
<%= form_for @location do |f| %>
<%= render 'shared/error_messages', :target => @location %>
<p>Name<br />
<%= f.text_field :name %></p>
<p>Description<br />
<%= f.text_area :description %></p>
<p>Location Tags (Separated by a Comma)<br />
<%= f.text_field :tag_names %></p>
<%= render :partial => 'shared/contact_info_form', :locals => {:f => f} %>
<p>Splash Image:<br />
<%= f.fields_for :cmsassets do |cmsasset_form| %>
<%= cmsasset_form.number_field :client_id, :type => 'hidden', :value => session[:current_client] %>
<p>Image Name:<br />
<%= cmsasset_form.text_field :name %></p>
<p>Description:<br />
<%= cmsasset_form.text_field :description %></p>
<p><%= cmsasset_form.file_field :attachment %><br />
<%= cmsasset_form.text_field :cms_asset_type, :type => 'hidden', :value => 'Splash' %></p>
<% end %></p>
<p>Display Address:<br />
<%= f.text_field :display_addr %></p>
<p>Latitude<br />
<%= f.number_field :latitude %></p>
<p>Longitude<br />
<%= f.number_field :longitude %></p>
<p>Trigger Radius<br />
<%= f.number_field :trigger_radius%></p>
<p>Published >> <%= f.check_box :published %></p>
<p>Expiration Date<br />
<%= f.text_field :expiration_date %></p>
<br />
<%= f.submit "Save" %>
但是,当我在嵌套表单中调用cmsassets时,会调用它呈现但很明显因为habtm数据结构而失败...
什么是疯狂的,这种方法使用nested_form gem,唯一的例外是paperclip在这种情况下导致失败,因为我们在模型级别使用动态样式..
如果有人能够解释这些问题中的任何一个,我会非常有兴趣听到一些想法!
答案 0 :(得分:0)
编写嵌套表单的HTML无效。
尝试将上传表单放在主表单之外。