実現したいこと
Railsにて動的フォームを実装したいです
ネストしたモデルの追加の仕方はいくつも記事が上がっているのですが、ネストしない場合のフォームの追加方法がわかりません。
この追加ボタン(赤枠部分)を押下することでカラムを動的に追加したいです。
下のコードを元にいうと、
追加ボタンを押下し、
<td><%= f.text_field :menu, placeholder: "menu", class: 'input form-control' %></td> <td><%= f.text_field :menu, placeholder: "settype", class: 'input form-control' %></td> <td><%= f.text_field :menu, placeholder: "weight", class: 'input form-control' %></td> <td><%= f.text_field :menu, placeholder: "reps", class: 'input form-control' %></td>
彼らを都度増やしていきたいと考えております。
全体コード
rails
1<%= form_for(@workoutmenu) do |f| %> 2 <tbody> 3 <tr> 4 <th>menu</th> 5 <th>settype</th> 6 <th>weight</th> 7 <th>reps</th> 8 </tr><br> 9 <td><%= f.text_field :menu, placeholder: "menu", class: 'input form-control' %></td> 10 <td><%= f.text_field :menu, placeholder: "settype", class: 'input form-control' %></td> 11 <td><%= f.text_field :menu, placeholder: "weight", class: 'input form-control' %></td> 12 <td><%= f.text_field :menu, placeholder: "reps", class: 'input form-control' %></td> 13 <br><%= f.submit "送信", class: "btn" %> 14 </tbody> 15<% end %>
どなたかご教授いただけますと幸いです。
よろしくお願いいたします。
追記
rails
1<%= form_for @workoutmenu do |f| %> 2 <table> 3 <thead> 4 <tr> 5 <th>menu</th> 6 <th>settype</th> 7 <th>weight</th> 8 <th>reps</th> 9 </tr><br> 10 <tbody class='add_menu_area'> 11 <%= f.text_field :menu, placeholder: "menu",name: "workoutmenu[#{menu.id}][menu]" %> 12 <%= f.select :settype, ['normalset', 'superset', 'dropset', 'giantset'],name: "workoutmenu[#{settype.id}][settype]" %> 13 <%= f.text_field :weight, placeholder: "weight",name: "workoutmenu[#{weight.id}][weight]" %> 14 <%= f.text_field :reps, placeholder: "reps",name: "workoutmenu[#{reps.id}][reps]" %> 15 </tbody> 16 </table> 17 <%= submit %> 18<% end %>
テーブルを動的に追加 とは <table>を増やすのですか? <tr>を増やすのですか?<th><td>を増やすのですか?
ご返信ありがとうございます。
希望としては
<td><%= f.text_field :menu, placeholder: "menu", class: 'input form-control' %></td>
<td><%= f.text_field :menu, placeholder: "settype", class: 'input form-control' %></td>
<td><%= f.text_field :menu, placeholder: "weight", class: 'input form-control' %></td>
<td><%= f.text_field :menu, placeholder: "reps", class: 'input form-control' %></td>
の部分を動的に増やしていきたいと考えております。
何卒よろしくお願いいたします。
ん?
それ全体を<tr>で囲んで、<tr>を増やすって意味ですね?
あら、よく見たら、trなしですね。
で、
このままtd達をふやしても、みなnameがおなじなので、最後の一組しかparamsに入りません。
大改造になりますね。。。
失礼いたしました。。
<td><%= f.text_field :menu, placeholder: "menu", class: 'input form-control' %></td>
<td><%= f.text_field :settype, placeholder: "settype", class: 'input form-control' %></td>
<td><%= f.text_field :weight, placeholder: "weight", class: 'input form-control' %></td>
<td><%= f.text_field :reps, placeholder: "reps", class: 'input form-control' %></td>
上記になります。
囲っている<td>などあるサイトに書いてあったので記載しているのですがあまりよく理解しておりません。。
要は上記を動的に増やすことができれば問題ありません。
うまくいなない というのは、「どうなってほしいのにどうなった」と表現するとどうなります?
あと。partialでと回答しているのですがそうなってないですね
どうなって欲しいのにどうなったの部分でいうと、
カラムらが追加されて欲しいのにエラーが出てしまったが表現としては正しいです。
そもそも先ほども書かせていただいたとおり、ご教授いただいた内容に理解が追いついていない状況です。
そのため、partialの部分もよくわかっていません。
もし可能でしたらコードをご教授いただけますと幸いです。