Я пытаюсь обновить вложенную модель с помощью простой ассоциации has_many / own_to
Я установил параметры в контроллере с помощью
params.require(:survey).permit(:name, :questions[[:id, :content]])
но я получаю сообщение Нет неявного преобразования типа Array в Integer
консольный дамп внизу. Из аналогичных проблем я читал, что проблема может заключаться в том, как этот :questions_attributes
хешируется - не знаю, где это нужно исправить - любые идеи приветствуются!
Спасибо
Started PATCH "/surveys/1" for 127.0.0.1 at 2014-01-04 15:53:31 +1100
Processing by SurveysController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"l5ANLS/y2Z+aB4xiJzEw+pF+j7V7LQk4THfU7mkTGX4=", "survey"=>{"name"=>"do u like cats?", "questions_attributes"=>{"0"=>{"content"=>"nope3", "id"=>"1"}, "1"=>{"content"=>"no way", "id"=>"2"}}}, "commit"=>"Update Survey", "id"=>"1"}
Survey Load (0.3ms) SELECT "surveys".* FROM "surveys" WHERE "surveys"."id" = $1 LIMIT 1 [["id", "1"]]
Completed 500 Internal Server Error in 2ms
TypeError (no implicit conversion of Array into Integer):
app/controllers/surveys_controller.rb:72:in `[]'
app/controllers/surveys_controller.rb:72:in `survey_params'
app/controllers/surveys_controller.rb:44:in `block in update'
app/controllers/surveys_controller.rb:43:in `update'
Обновление: это то, что публикуется, когда: question_attributes не имеет лишних скобок
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"l5ANLS/y2Z+aB4xiJzEw+pF+j7V7LQk4THfU7mkTGX4=",
"survey"=>{"name"=>"do u like cats?",
"questions_attributes"=>{"0"=>{"content"=>"nope2",
"id"=>"1"},
"1"=>{"content"=>"no way",
"id"=>"2"}}},
"commit"=>"Update Survey",
"id"=>"1"}