class User < ActiveRecord::Base
belongs_to :person, :dependent => :destroy
accepts_nested_attributes_for :person, :allow_destroy => true
attr_accessible :person_attributes
end
class Person < ActiveRecord::Base
has_many :phone_numbers, :as => :phoneable, :dependent => :destroy
has_one :user
accepts_nested_attributes_for :phone_numbers
end
class PhoneNumber < ActiveRecord::Base
belongs_to :phoneable, :polymorphic => true
end
<%= form_for @user do |user_form| %>
<%= user_form.fields_for :person do |person_form| %>
<%= person_form.fields_for :phone_numbers do |phone_number_form| %>
<%= phone_number_form.text_field :number %>
<% end %>
<% end %>
<% end %>
Это работает.Он делает то, что я ожидаю, но я хочу, чтобы в моей форме было больше одного номера телефона.Как мне это сделать?
user[person_attributes][phone_numbers_attributes][0][number]
Почему fields_for добавляет [0]?
Если я хочу несколько телефонных номеров, будет ли второй выглядеть так?
user[person_attributes][phone_numbers_attributes][1][number]
Если да, то как?
Если я могу получить несколько телефонных номеров в базе данных, мой следующий вопрос будет состоять в том, как включить другие атрибуты номера телефона вместе с каждым номером?Например: описание
user[person_attributes][phone_numbers_attributes][0][number]
user[person_attributes][phone_numbers_attributes][0][description]