Rails パラメーターがフィルタリングされたり、解析されなかったりして、少し問題があります。WEBRick でローカルに実行している場合は問題なく動作しますが、Heroku で起動すると、送信されたフォーム パラメータの束が無視されます (params[] には追加されません)。
フォームを送信すると、そこにない値が期待されているため、フォームが失敗します。Airbrake は、 rack.request.form_hashがこれであることを教えてくれます:
{"utf8"=>"✓", "_method"=>"put", "authenticity_token"=>"8CZUmWc7qB1mWAbyn9NeGmygRVczdZCtI3CXwu0DUV4=", "survey_entry"=>{"生徒"=>{"id"=>"2784", "non_vrh"=>"f", "イニシャル"=>"A", "姓"=>"ABC", "year_group_id"=>"5", "age_this_september_years"=>"", "age_this_september_months"=>" ", "現在の読書レベル"=>""}, "アンケート"=>{"回答"=>{"21"=>"6", "22"=>"2", "39"=>""," 40"=>""}}}}
しかし、それはaction_dispatch.request.parametersがこれであることも教えてくれます:
{"utf8"=>"✓", "_method"=>"put", "authenticity_token"=>"8CZUmWc7qB1mWAbyn9NeGmygRVczdZCtI3CXwu0DUV4=", "survey_entry"=>"" , "action"=>"update", "controller"= >"survey_entries", "id"=>"7"}
だから、私がやっていることは間違いなく愚かで愚かなことですが、今は混乱しています:/
アップデート
不思議なことに、同じページから送信されたフォーム (フィールドはわずかに異なります) は正常に機能します。
utf8:✓</p>
_method:プット
Authenticity_token:HLCXURx1BosuXlVYwBuOP+DxJwdY3SKwilx1CJDuwT8=
survey_entry[生徒][id]:2485
survey_entry[生徒][non_vrh]:f
調査項目[生徒][イニシャル]:AAS
調査項目[生徒][姓]:ABC
survey_entry[生徒][year_group_id]:4
survey_entry[生徒][attendance_pct]:
survey_entry[生徒][reading_level][at_placement]:12
survey_entry[生徒][reading_level][at_term1]:
survey_entry[生徒][reading_level][at_term2]:
survey_entry[生徒][reading_level][at_term3]:
survey_entry[生徒][previous_progress]:
survey_entry[生徒][target_rl_id]:
survey_entry[生徒][english_first_language]:0
survey_entry[生徒][english_first_language]:1
survey_entry[生徒][care_order]:0
survey_entry[生徒][lac_funded]:0
survey_entry[生徒][free_meals]:0
調査項目[生徒][選択理由ID]:4
survey_entry[生徒][other_selection_reason]:
survey_entry[アンケート][回答[3]]:2
survey_entry[アンケート][回答[4]]:2
survey_entry[アンケート][回答[13]]:3
survey_entry[アンケート][回答[14]]:3
survey_entry[アンケート][回答[20]]:3