Railsでネストされたモデルを作成していますが、コントローラー内のネストされたモデルにフィールドを追加したいとします。私はそれが改ざんされる可能性があるので、hidden_field_tagを使用していません。Railsでparamsハッシュを変更する
Parameters: {"dummy"=>{"users_attributes"=>{"0"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}, "1"=>{"email"=>"[email protected]", "id"=>"", "_destroy"=>"false"}}}, "commit"=>"Create Dummy"}
私がしたいことは企業IDと呼ばれる各user_attributes下のフィールドが存在することはある:
は、ここに私のparamsハッシュです。しばらくの最初の行のエラー:私は「NilClass未定義のメソッド `[]」nilのために」を取得、
len = params["dummy"]["users_attributes"].size
counter = 0
while counter < len
params["dummy"]["users_attributes"][counter]["companyid" => "company"]
counter = counter + 1
end
しかし:の私は、「企業」を企業ID、私はこれが働くだろうと思ったかったとしましょうループ。なぜ私は正確にはわからない。
誰かが私を助けて、私がparamsハッシュを変更できますか?
編集: だから、やっと私はそれを理解しました。私は本当に解決策のどれも使っていませんでした。まず、hidden_fieldタグをcompanyidのために空白に設定しました。私のコントローラーでは、次のように入力しました。
params["dummy"]["users_attributes"].each do |key, val|
params["dummy"]["users_attributes"][key]["companyid"] = "company"
end
最も洗練されたコードではありませんが、うまくいきます。
隠されたフィールドの深い議論が解決策を見つけ出すことができたので、私はあなたにチェックをしています。ありがとう! – NielMalhotra
私は正当性が欠けているので、私は冗長で補う。私はJavaのプログラマーだったはずです! (ああ、待っていた、私は)。だから、解決策は何ですか? –
これは元の投稿の編集にあります:フォームのf.hidden_field:companyid、次に上記のコードスニペット – NielMalhotra