我开始在Ruby On Rails中开发一个小应用程序。我有一个简短的表单(在一个视图中),其中字段的数量是可变的,并使用下面的代码片段创建:
<% for item in @event.items %>
<tr>
<td><%= item.name %></td>
<td><input type="number" name="quantity" /></td>
</tr>
<% end %>
我想在点击'submit'之后,运行一个控制器的方法来访问表单中每个字段中包含的数据,并在数据库上执行插入操作。最后,我想要刷新页面。
如何自定义提交按钮的操作以执行控制器的功能?如何在此函数内访问表单字段(其编号如上所述是可变的)。
提前感谢您的帮助。
答案 0 :(得分: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。