概要
Rails5、heroku(staging)にてネストしたActionController::Parametersの値がコントローラにわたらない
環境
Rails 5.1.2
Ruby 2.4.1
Herokuのみ(開発環境/テストでは問題なし・・・)
詳細
自家製フォームオブジェクトで1対多のモデルを同時に更新しようと
ActionController::ParametersのなかにのActionController::Parametersをいれたものを
postしています。
うまく動作せずに確認すると、
コントローラ内でStrongParameterでpermitされたあとに(正しい表現ではなさそう)、ActionController::ParametersのなかにのActionController::Parametersハッシュが空になっていることがわかった。
StrongParameterの設定方法の問題であることが疑われるけれど、
開発環境/テストでは問題なく、heroku(ステージング環境)でのみ再現する。
コードは同期していて、herokuのリスタートもしています。
ステージングと開発環境でのデータの違いも疑ったけれど、サーバのログで、渡される以下の値の構造や項目名など同じようでした。
「 Parameters: {~」
Railsの環境設定ファイルあたりでなにか違いがありそうな気がするのですが、
なにかお心当たりはありますでしょうか。
補足
最小で動作するコードは書けていません・・・
(accept_nested_attribute_forが負債になるという文脈で、フォームオブジェクトをつくろう、という意見はネット上にぱらぱらありますが、1対多のモデルを同時に更新する場合のサンプルを探し中です。
なにかよいものあるでしょうか。
あなたの回答
tips
プレビュー