Rails 4,Paperclip和多态关联

我有2个模型:News和Uploadedfile

class News < ActiveRecord::Base has_many :uploadedfiles, as: :parent attr_accessible :title, :content, :author end class Uploadedfile < ActiveRecord::Base belongs_to :parent, polymorphic: true has_attached_file :url attr_accessible :url_file_name, :url_content_type, :url_file_size, :url_updated_at end 

forms:

  

当我提交表单时,我的表uploadedfile不会更改

问题出在哪儿? 谢谢!

我认为你嵌套了adebute :uploadedfiles

 class News < ActiveRecord::Base has_many :uploadedfiles, as: :parent attr_accessible :title, :content, :author, :uploadedfiles_attributes accept_nested_attributes_for :uploadedfiles end 

并以forms:改变:

  <%= f.fields_for :uploadedfile, f.uploadedfile.new do |uf| %> 

至:

 <%= f.fields_for :uploadedfiles, Uploadedfile.new do |uf| %> 

我不认为你需要多态关联。 这是一种更易读的方法:

 class News < ActiveRecord::Base has_many :uploadedfiles attr_accessible :title, :content, :author accept_nested_attributes_for :uploadedfiles end class Uploadedfile < ActiveRecord::Base belongs_to :news has_attached_file :url attr_accessible :url_file_name, :url_content_type, :url_file_size, :url_updated_at end 

*请注意,我已添加了accept_nested_attributes_for

forms:

 <%= form_for(@news) do |f| %> 
<%= f.fields_for :uploadedfiles do |uf| %> <%= uf.label :url %>
<%= uf.file_field :url %> <% end %>
<%= f.submit %>
<% end %>