【发布时间】:2016-05-25 21:07:32
【问题描述】:
我在 Rails 应用程序中处理动态表单,我需要在单个表单提交中将可变数量的记录插入模型中。我之前使用 PHP -> MySQL/Postgres 完成了此操作,但我不知道如何在 Rails 中执行此操作。
最终,用户应该能够创建任意数量的要插入的记录,但在下面的示例中,我将其限制为 2...让我看看我是否可以这样做,首先...
这是表单 - id 都有一个唯一的后缀,因为它们是在提交时从 localStorage 对象动态填充的。
new.html.erb
<%= form_for @entry, html: {id: :new_entry_form} do |f| %>
<% for i in 0..1 %>
<%= f.text_field :name, :id => 'name_#{i}' %>
<%= f.text_field :day, :id => 'day_#{i}' %>
<% end %>
<% end %>
这是关联的控制器 - 我确定这缺少一些东西,但我不知道是什么。
def new
@entry = Entry.new
end
def create
@entry = Entry.create(entry_params)
redirect_to "http://localhost:3000/entries"
end
private
def entry_params
params.require(:entry).permit(:name, :day)
end
任何帮助将不胜感激。
【问题讨论】:
-
'name'"_#{i}"''可以简单地写成"name_#{i}"-- 仅供参考 -
你是对的,但在这种情况下,它需要这样编写——表单实际上是通过 jQuery 附加到正文中的,所以它作为字符串存在于 JavaScript 变量中——因此需要额外报价的情况。为了简单起见,我在这里用典型的 Ruby 格式编写了它,但没想到要更改属性格式。
-
但是,你对我的问题有什么想法吗?
标签: ruby-on-rails forms activerecord