has_one 다형성 모델에 대해 중첩 된 양식을 제출할 때 질량 지정 오류가 발생합니다. 양식에서 polymorphic association Rails guide을 기반으로 Employee 및 Picture 인스턴스를 만들려고합니다.다형성 연관에 의한 질량 지정 오류
문자 그대로 ANY 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 당신은 적절하게 nested_attributes를 지정해야합니다
<%= form_for(@employee) do |f| %>
<%= f.fields_for :illustrated do |form| %>
<%= form.text_field :filename %>
<% end %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
에보기 코드에서
field_for
줄을 변경? 그리고 대신': illustrated_attributes'가 있어야합니다. –다른 작업은 employees # new action에서'@employee.picture = Picture.new'를'@ employee.build_picture'로 바꾸는 것입니다. 이것은 has_one/belongs_to 연관과 연관된 레코드를 만드는 올바른 방법입니다. –
감사합니다 -보기 코드를 추가했습니다. 모델에서': illustrated_attributes'를 시도했지만 같은 오류가 발생했습니다. '@ employee.build_picture'로 변경되었지만 여전히 같은 오류가 발생합니다. –