表单提交以创建多个对象

时间:2014-12-31 12:50:09

标签: ruby-on-rails ruby ruby-on-rails-4

我想通过提交一个带有单个textarea输入的表单来创建多个对象。

我设想:
- 每一行,一个新的对象
- 属性以逗号分隔

E.g。对于具有以下属性的User模型:nameemailactivated

Larry Page, larry@google.com, false
Jeff Bezos, jeff@amazon.com, true
Mark Zuckerburg, mark@fb.com, false

如何在控制器中将表单提交转换为每个"对象的一个​​数组" (这样我就可以迭代它们并执行创建)?

1 个答案:

答案 0 :(得分:2)

在您的控制器中,您可以将用户输入转换为数组,假设每行由换行符分隔:

textfield_value = "Larry Page, larry@google.com, false\nJeff Bezos, jeff@amazon.com, true\nMark Zuckerburg, mark@fb.com, false"

textfield_value.each_line do |d|
  row = d.split(",")
  MyModel.create(name: row[0], email: row[1], activated: row[2]
end

这可以进一步重构。只是给你一个主意。