Rails 4: accept_nested_attributes_for и массовое назначение
Я пытаюсь воспроизвестиRailscast # 196 в Rails 4. Однако яЯ испытываю некоторые проблемы.
В моем примере я пытаюсь создать телефонную книгу - каждый человек может иметь несколько телефонных номеров
Это важные части моего контроллера:
class PeopleController < ApplicationController
def new
@person = Person.new
3.times{ @person.phones.build }
end
def create
@person = Person.create(person_params)
@person.phones.build(params[:person][:phones])
redirect_to people_path
end
private
def person_params
params.require(:person).permit(:id, :name, phones_attributes: [ :id, :number ])
end
end
и это мой новый взгляд
New Person
<p>
</p>
<p>
</p>
<p>
</p>
Излишне говорить, что у меня естьhas_many :phones
а такжеaccepts_nested_attributes_for :phones
в модели моего лица иbelongs_to :person
в модели телефона.
У меня есть следующие проблемы:
Вместо 3-х полей номера телефона в новом виде есть только одноКогда я отправляю форму, я получаю сообщение об ошибке:ActiveModel :: ForbiddenAttributesError
в соответствии
@person.phones.build(params[:person][:phones])
Параметры:
{"utf8"=>"✓",
"authenticity_token"=>"l229r46mS3PCi2J1VqZ73ocMP+Ogi/yuYGUCMu7gmMw=",
"person"=>{"name"=>"the_name",
"phones"=>{"number"=>"12345"}},
"commit"=>"Save Person"}
В принципе, я хотел бы сделать все это как объект формы, но я думаю, что если я неЯ даже не могу получить его с acceptt_nested_attributes, у меня нет шансов сделать это как объект формы :(