0

なぜなぜ... ...?Rails5、ネストされた形式の許容されないパラメータ、既存のオブジェクトの関連付け中

3つのモデル(FirstModelSecondModelJoinedModel)、JoinedModelはJoinedModel介して、他の互いに他の2 has_manyの両方に属します。 JoinedModel accepts_nested_attributes_for first_modelとsecond_model。

また、first_model_idsecond_model_idの存在を確認します。

入社モデル強いのparams:

private 
def joined_params 
    params.require(:joined_model).permit(:first_model_id, :second_model_id, 
        :first_models_attributes => [:id, :name], 
        :second_models_attributes => [:id, :full_name]) 
end 

JoinedModelの_form:私はこのフォームを送信すると

は、私が手

<%= form_for(joined_model) do |f| %> 
<%= f.fields_for :second_models do |ff| %> 
    <%= ff.select(SecondModel.all.map {|c| [ c.full_name, c.id ] }, { include_blank: true }) -%> 

(およびFirstModelに同じf.fields_for

Unperm

パラメータ::ittedのparams first_models、

、クエリをsecond_models { "UTF8" => "✓"、 "authenticity_token" => "GVW/OrOXJruAK0ZD + uoajJ4N + dZvpmZF8Ay0TOKF9HPO19d4tRBoWz0C4VoaOABYat8KzrryL8lp5ax + Y9ZJRg == ";" joined_models "=> {" first_models "=> {" first_model_id "=>" 1 "}、 " second_models "=> {" second_model_id "=>" 1 "}}、" commit "=>"作成結合した モデル "}

私は、フォームがハッシュを送信しようとする理由は、どのようになど知らない - "second_models"=>{"second_model_id"=>"1"}それだけ"second_model_id"=>"1"ようなことになって、私のフォームは、単純なf.number_field :first_model_id代わりのselectを使用している場合、それは次のように行います...

+0

あなたはあなたの答えに答えを加え、それを受け入れるべきです。奇妙な気分だが、絶対に受け入れられる(そして奨励される)!また、より明瞭なタイトルについて考えることもできます。この問題が発生したときに、他の人がこの解決法を見つけるのを助けることができますか? – coreyward

+0

はい、良いアイデア、私はそれを投稿します。タイトルについて、私はそのようにもっとよく考えました - 多くの関連キーワード(他の人は思うことはできません:)))) –

+0

あなたのタイトルは、簡潔で関連性の高い質問または問題文でなければなりません。検索はキーワードの読み込みがなくてもうまく機能します。 ;) – coreyward

答えて

0

私は答えと意志を見つけましたそれは今、すべて正常に動作しますように

<%= form_for(joined_model) do |f| %> 
<%= f.fields_for :second_models do |ff| %> 
    <%= f.select(SecondModel.all.map {|c| [ c.full_name, c.id ] }, { include_blank: true }) -%> 

見えるが、誰もが知っている場合:のようなので、StackOverflowの

に見られる多くの類似した未回答の質問は、答えはselectのために親のフィールドビルダーを使用していた、以来、このポストを残しますなぜ私はビルダーobjecを提供する必要があります私がそれを使用していない場合、ネストされたフィールドのためのt(私の場合は|ff|)、私はハイファイブとタンゴのダンスを与えるでしょう!

はUPDATE:

は、だから私はここにいるので、私は新しいJoinedModelのレコードを作成し、唯一を選択して、このような状況で、私は今でもそれはすべてのローミングサービスを作る... fields_forを必要としていなかったことがわかりました2つの(既存の)レコードとアソシエーションは、単に私にそれらのメソッドをつかまえます。ビットラメですが、まあまあ...

関連する問題