Я следил за Эпизодом 165 Railscast (исправленным) до первого о том, как редактировать и обновлять несколько записей в одной форме. Но когда я отправляю свою форму для одновременного редактирования нескольких записей, я получаю:
ActiveModel::ForbiddenAttributesError
Для этой строки:
product.update_attributes(params[:product].reject { |k,v| v.blank? })
Параметры:
Параметры:
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"g5C2siF5GcWfPxhph4utWn8JBs2JXEpIUBDO6OlFyQQ=",
"product_ids"=>["11142",
"11143"],
"product"=>{"user_id"=>"",
"allow_multi_users"=>"true",
"state_id"=>"",
"site"=>"",
"department"=>"",
"room"=>"",
"asset_type_id"=>"",
"asset_model_id"=>"",
"sync_with_jss"=>"",
"carrier_id"=>"",
"mobile_contract_req_date"=>"",
"mobile_contract_end_date"=>"",
"mobile_international_plan"=>"",
"mobile_tethering"=>"",
"mobile_account"=>""},
"commit"=>"Update"}`
Обычно я думаю, что это связано с тем, что я не разрешил атрибут в сильных параметрах. Но это не атрибут, это параметры формы, которые содержат все значения.
Это для моей модели Products.rb, так что не должен ли он уже принимать params[:product]?
products_controller.rb
private
def product_params
params.require(:product).permit(:mobile_account, :mobile_international_plan, :mobile_tethering, :mobile_contract_end_date.. )
end
Использование Rails 4.0.0
puts params[:product]
к вашему вопросу. - person mohameddiaa27   schedule 07.11.2014