0

次のパラメーターを Rails フォームに取得しようとしています。

{:routine=>{
 :name=>"Test"}, 
  :arbitrary=>[
   {:lift=>{
    :exercise_id=>"1", 
    :infos=>[
     {:weight=>"250", :repetiton=>"8"}, 
     {:weight=>"275", :repetition=>"6"}
            ]
           }
   },
   {:lift=>{
    :exercise_id=>"2", 
    :infos=>[
     {:weight=>"405", :repetition=>"12"}, 
     {:weight=>"445", :repetition=>"4"}
            ]
           }
   }
              ]
} 

Railsでフォームを適切に設定する方法を学んだことで、フォームの構築を開始する前に自分のパラメータをどうしたいかを決定することが非常に役立つことに気付きました. フォームの初期段階で問題が発生しています。

上記のパラメーターには、名前を持つルーチンがあります。そのルーチンには多くのリフトがあり、これはルーチンとエクササイズの間の結合です。選択フィールドで、ユーザーに Exercise.all からエクササイズを選択させ、エクササイズのインスタンスを Exercise_id として設定して、routine_id とともにリフトを作成できるようにしようとしています。各リフトには多くのセットがあり (上記のパラメーターの情報、レールではセットを使用できません)、重みと繰り返しがあります。

私が現在持っている短い形式では、私が選択した最後の演習は、params で渡される唯一の演習です。大量の割り当てを行うと、最初の :lift が 2 番目の :lift などによってオーバーライドされるため、私は推測しています。ここに私が現在持っているフォームがあります

<%= form_tag routines_path %>

<%= label_tag "routine[name]", "Routine Name" %>
<%= text_field_tag "routine[name]" %><br />

<%= select("arbitrary[][lift]", "exercise_id", Exercise.all.collect {|p| [ p.name, p.id] }) %><br />

<%= select("arbitrary[][lift]", "exercise_id", Exercise.all.collect {|p| [ p.name, p.id] }) %>

<%= submit_tag "Submit Routine" %>

これらのパラメーターを達成する方法はありますか、それとも一般的に間違ったパラメーターを使用していますか。私は、各 :lift が別の名前で呼び出された場合、それは機能するが、私がやろうとしていることではないと推測しています。助けてくれる人に感謝します。

4

1 に答える 1