【问题标题】:Rails - inserting multiple records/dynamic formRails - 插入多条记录/动态表单
【发布时间】: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


【解决方案1】:

点击这个链接,它展示了如何在一个表单中创建多个对象提交:

http://vicfriedman.github.io/blog/2015/07/18/create-multiple-objects-from-single-form-in-rails/

【讨论】:

  • 谢谢。我很难找到有关如何做到这一点的资源——我想人们不必经常这样做?我觉得它已经出现在我从事的几个项目中,这对我来说只是第一次在 Rails 应用程序中。
猜你喜欢
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多