フォームに 2 つの選択フィールドがあります。これらの選択フィールドの 1 つが値を変更するたびに、フォームの残りの部分を変更する必要があります。選択フィールドに次のコードを使用しました。
<%= f.collection_select :model1, Model1.all, :id, :name, "data-remote" => true, "data-url" => "/model3/get_rest_form" %>
<%= f.collection_select :model2, Model2.all, :id, :name, "data-remote" => true, "data-url" => "/model3/get_rest_form" %>
ここでの問題は、model3 コントローラーに送信された Ajax リクエストへの応答を作成するために、両方の選択フィールドの値が必要ですが、params で変更されたばかりの選択フィールドの値しか取得しないことです。
model1 フィールドが変更された場合、次のようになります。
params = {"model3"=>{"model1"=>"2"}}
model2 フィールドが変更された場合、次のようになります。
params = {"model3"=>{"model2"=>"3"}}
しかし、どちらの場合も次のものが必要です。
params = {"model3"=>{"model1"=>"2", "model2" => "3"}}
どうすればこれを理解できますか?
選択フィールドが変更されたときにすべてのフォームデータが送信されるようにする方法があるかもしれません。
ありがとうございました!