我有一个错误“无法批量分配受保护的属性:上传”,但我已将其分配为可访问。
这是具有多态关联的嵌套形式。
楷模
class Upload < ActiveRecord::Base
attr_accessible :link, :post_id
belongs_to :uploadable, polymorphic: true
end
class Post < ActiveRecord::Base
attr_accessible :description, :title, :uploads_attributes
has_many :uploads, as: :uploadable
accepts_nested_attributes_for :uploads, :reject_if => lambda { |a| a[:content].blank?
}, :allow_destroy => true
end
我也试过 put accept_nested ... for :uploadable 但告诉我不存在关联
控制器上的新动作是这个
def new
@post = Post.new
@post.uploads.new
end
这是创建的表格
<%= form_for [:admin,@post], remote: true, :html => {:multipart => true} do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title%>
</div>
<div class="field">
<%= f.label :description%><br />
<%= f.text_area :description %>
</div>
<div>
<%= f.fields_for :upload do |builder| %>
<%= render 'upload_fields', f: builder %>
<% end %>
<%= link_to_add_fields "Add Upload", f, :uploads %>
</div>
<div class="actions">
<%= f.submit%>
</div>
<% end %>
部分...
<fieldset>
<%= f.label :file %><br />
<%= f.file_field :file %>
<%= f.hidden_field :_destroy %>
<%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
不要认为 javascript 会影响,所以我不会把它放在这里。我如何解决多态关联上的“无法批量分配受保护的属性”?
请在这方面需要任何人的帮助。不敢相信我不能上传文件,在教程上看起来很简单,而且它不起作用,或者我得到一个不能批量分配或上传它没有保存....