0

Ruby On Rails で小さなアプリケーションの開発を始めています。フィールドの数が可変で、以下のコード スニペットで作成された短いフォーム (ビュー内) があります。

<% for item in @event.items %>
    <tr>
        <td><%= item.name %></td>
        <td><input type="number" name="quantity" /></td>
    </tr>
<% end %>

「送信」をクリックした後、フォームの各フィールドに含まれるデータにアクセスし、データベースに挿入を実行するコントローラーのメソッドを実行します。最後に、ページを更新したいと思います。

送信ボタンのアクションをカスタマイズしてコントローラーの機能を実行するにはどうすればよいですか? そして、この関数内でフォームフィールドにアクセスするにはどうすればよいですか (前述のように、その番号は可変です)。

よろしくお願いします。

4

1 に答える 1

1

ネストされた属性を使用できます。次に、次のようになります (HAML で申し訳ありません)。

= form_for @event do |f|
  = f.fields_for :items do |item|
    = item.object.name  #displays item name
    = item.number :quantity

そしてあなたのイベントモデルでは:

accepts_nested_attributes_for :items

この場合、nested_form gem https://github.com/ryanb/nested_formを使用することをお勧めします。

于 2012-04-25T20:04:18.543 に答える