2

Rails 4 の強力なパラメーターに問題があります。問題は、次のようなパラメーターを渡そうとすると、後で ForbiddenAttributesError 例外が発生することです。

"survey_answer"=>{"a1"=>"answer_1",
 "a2"=>"answer_1",
 "a3"=>"answer_3",
 "a4"=>["test1",
 "test2",
 "test3"],
 "a7"=>"answer_7",
 "name"=>"Test name",
 "industry"=>"Test industry",
 "email"=>"test@test.com"}}

ご覧のとおり、a4 は、値の配列を生成するチェック ボックスから取得されます。この点に対する私の提案された解決策はこれです:

params.require(:survey_answer).permit(:a1, :a2, :a3, :a7, :name, :email, :industry, :a4 => [], :a5, :a6)

残念ながら、どのようにリファクタリングしても、同じポイントに到達します。

4

2 に答える 2

0

これを試してみてください

params.require(:survey_answer).permit(:a1, :a2, :a3, :a7, :name, :email, :industry, :a5, :a6, a4: [])

最後に配列型の引数をシフトするだけです。これがうまくいくことを願っています。

于 2015-02-25T16:08:55.987 に答える
0

これを試して。

params.require(:survey_answer).permit(:a1, :a2, :a3, :a7, :name, :email, :industry, {:a4 => []}, :a5, :a6)
于 2013-08-05T03:28:23.803 に答える