私が使用しているモデルは、販売者、住所、電話番号、連絡先です。関係は次のとおりです。
商人:
has_many :phones, :as => :phoneable, :dependent => :destroy
has_many :addresses, :as => :addressable, :dependent => :destroy
has_many :contacts, :as => :entity, :dependent => :destroy
コンタクト:
has_many :phones, :as => :phoneable, :dependent => :destroy
has_many :addresses, :as => :addressable, :dependent => :destroy
2つの住所レコードと多くの電話レコードを持つ親レコードを作成できるフォームがあります。私のマーチャントコントローラーの新しいメソッドには、次のセットアップコードがあります。
@merchant.addresses.build (:address_type => "Dba")
@merchant.addresses.build (:address_type => "Mailing")
@merchant.phones.build (:phone_type => "Business")
@merchant.phones.build (:phone_type => "Fax")
実際のフォームには次のものがあります。
<%= f.fields_for :addresses do |a| %>
商人の2つのアドレス、および;
<%= f.fields_for :phones do |p| %>
商人の電話記録のために。
私が抱えている問題は、連絡先の住所と電話記録を追加するときです。
<%= f.fields_for :contacts do |c| %>
<%= f.fields_for :addresses do |a| %>
<%= f.fields_for :phones do |p| %>
これにより、連絡先レコードごとに2つの住所と電話番号が表示されます。
マーチャントレコードには2つのアドレスのみが必要です。2つのaddresses.buildとphones.buildを取得して、親のみのレコードを作成し、連絡先ごとに1つのアドレスと電話のレコードのみを作成するにはどうすればよいですか(リンクを介して動的にフォームに追加されます)。