1
我在爲has_one多態模型提交嵌套形式時遇到質量分配錯誤。表單正在嘗試創建基於polymorphic association Rails guide的Employee和Picture實例。具有多態關聯的質量分配錯誤
我將不勝感激字面上任何功能例如對於HAS_ONE多態模型嵌套創作形式的!我知道有大量關於質量分配錯誤的問題,但我從來沒有見過一個多態關聯的工作示例。
模型
class Picture < ActiveRecord::Base
belongs_to :illustrated, :polymorphic => true
attr_accessible :filename, :illustrated
end
class Employee < ActiveRecord::Base
has_one :picture, :as => :illustrated
accepts_nested_attributes_for :picture
attr_accessible :name, :illustrated_attribute
end
遷移
create_table :pictures do |t|
t.string :filename
t.references :illustrated, polymorphic: true
end
create_table :employees do |t|
t.string :name
end
控制器/ employees_controller.rb
...
def new
@employee = Employee.new
@employee.picture = Picture.new
end
def create
@employee = Employee.new(params[:employee])
@employee.save
end
...
錯誤
在模型中,我試過的每個排列:圖文並茂,:圖片,:illustrated_attribute,:illustrated_attributes,:picture_attribute,:picture_attributes等任何提示或例子?
編輯:
_form.html.erb
<%= form_for(@employee) do |f| %>
<%= f.fields_for :illustrated do |form| %>
<%= form.text_field :filename %>
<% end %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
您可以添加您的視圖文件的代碼?而應該是':illustrated_attributes'。 – 2013-02-09 21:46:00
另一件事是在員工#新操作中用'@ employee.build_picture'替換這一行'@employee.picture = Picture.new'。這是用has_one/belongs_to關聯建立關聯記錄的正確方法。 – 2013-02-09 22:01:11
謝謝 - 添加了視圖代碼。我在模型中嘗試了':illustrated_attributes',但得到了同樣的錯誤。也更改爲'@ employee.build_picture',但仍然收到相同的錯誤。 – 2013-02-09 22:02:40