을 사용하여 종속적 인 다형성 연결을 만드는 데 성공했지만 지금은 기존의 다형성을 할당하고 싶습니다.레일 다형성 지정
undefined method `id' for {"id"=>"4"}:ActiveSupport::HashWithIndifferentAccess
모델 :
이class Person < ActiveRecord::Base
has_one :address, :as => :addressable
end
class Company < ActiveRecord::Base
has_one :address, :as => :addressable
end
class Address < ActiveRecord::Base
belongs_to :addressable, :polymorphic => true
end
보기 : 결과 PARAMS 해시
<%= form_for @company do |f| %>
<p>
<%= f.label :company_name %><br />
<%= f.text_field :company_name %>
</p>
<%= f.fields_for :address do |f| %>
<div class="field">
<%= f.collection_select :id, Address.all, :id, :description, {:prompt => "-Select Address"} %>
</div>
<% end %>
입니다
: 나는 오류를 받고 있어요 나에게 합리적인 보이는"company"=>{"company_name"=>"myCompanyName", "address"=>{"id"=>"4"}}
. 내가 도대체 뭘 잘못하고있는 겁니까? d.collection_select
-f.fields_for :address do |d|
및 f.collection_select
에
당신의 제안을 시도했습니다. 같은 오류. 이 경우에 params 해시는 어떻게 보이게되어 있습니까? – SooDesuNe
블록 매개 변수는 항상 블록에 국한되어 있으므로 fields_for의 양식 빌더 객체 f는 외부 f_object_for와 동일하지 않습니다. 이는 f.object_id를 검사하여 볼 수 있습니다. 읽을 수 있도록 다른 이름을 사용하는 것이 현명합니다. – zetetic
'accepts_nested_attributes_for : 주소'가'Company' 모델에 표시되는지 확인하십시오. – fl00r