0

私が使用しているモデルは、販売者、住所、電話番号、連絡先です。関係は次のとおりです。

商人:

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つのアドレスと電話のレコードのみを作成するにはどうすればよいですか(リンクを介して動的にフォームに追加されます)。

4

1 に答える 1

0

1つの方法は、マーチャントで「新規」アクションを実行して、ユーザーが入力する2つのアドレスを表示するフォームを表示することです。このフォームの送信アクションにより、マーチャントが作成されます。また、「連絡先の追加」へのリンクもあり、連絡先を作成するための別のフォームが表示されます。連絡先の「新規」フォームには、ユーザーが入力する1つの住所と1つの電話番号を表示する必要があります。

于 2012-04-27T04:49:14.330 に答える