Вложенные атрибуты, недопустимые параметры
у меня естьBill
объект, который имеет многоDue
объекты.Due
Объект также принадлежитPerson
, Я хочу форму, которая может создатьBill
и его детиDues
все на одной странице. Я пытаюсь создать форму, используя вложенные атрибуты, похожие на те, что вэто Railscast.
Соответствующий код указан ниже:
due.rb
class Due < ActiveRecord::Base
belongs_to :person
belongs_to :bill
end
bill.rb
class Bill < ActiveRecord::Base
has_many :dues, :dependent => :destroy
accepts_nested_attributes_for :dues, :allow_destroy => true
end
bills_controller.rb
# GET /bills/new
def new
@bill = Bill.new
3.times { @bill.dues.build }
end
счета / _form.html.erb
<br>
<br>
<br>
builder %>
счета / _due_fields.html.erb
<br>
ОБНОВЛЕНИЕ до bills_controller.rb Это работает!
def bill_params
params
.require(:bill)
.permit(:company, :month, :year, dues_attributes: [:amount, :person_id])
end
Надлежащие поля отображаются на странице (хотя и без раскрывающегося спискаPerson
пока) и отправить успешно. Однако ни один из дочерних сборов не сохраняется в базе данных, и в журнале сервера выдается ошибка:
Unpermitted parameters: dues_attributes
Непосредственно перед ошибкой, журнал отображает это:
Started POST "/bills" for 127.0.0.1 at 2013-04-10 00:16:37 -0700
Processing by BillsController#create as HTML<br>
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"ipxBOLOjx68fwvfmsMG3FecV/q/hPqUHsluBCPN2BeU=",
"bill"=>{"company"=>"Comcast", "month"=>"April ",
"year"=>"2013", "dues_attributes"=>{
"0"=>{"amount"=>"30", "person_id"=>"1"},
"1"=>{"amount"=>"30", "person_id"=>"2"},
"2"=>{"amount"=>"30", "person_id"=>"3"}}}, "commit"=>"Create Bill"}
Были ли какие-то изменения в Rails 4?