Rails 3.1嵌套表单问题

时间:2011-12-01 13:26:48

标签: ruby-on-rails-3.1 paperclip

我有以下情况:

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在这种情况下导致失败,因为我们在模型级别使用动态样式..

如果有人能够解释这些问题中的任何一个,我会非常有兴趣听到一些想法!

1 个答案:

答案 0 :(得分:0)

编写嵌套表单的HTML无效。

尝试将上传表单放在主表单之外。