Rails - 在一个表单中创建一个模型的多个记录

时间:2016-09-16 09:08:51

标签: ruby-on-rails

假设我们有一个带有name属性的User模型。 我想创建一个包含多个文本字段的表单,以在数据库中创建多个记录。我能够使用form_tag来完成这个,但有没有办法使用form_for?

1 个答案:

答案 0 :(得分:1)

使用form_for执行此操作是可能的,但由于这实际上不是与单个模型实例相关的表单,因此您应该坚持form_tag

要将其作为form_for,每个名称都必须是一个属性。

你可以(在你的模型中)......

attr_accessor :name1, :name2, :name3

即使它们不是db表中的列,也会接受其他名称。

然后在你的创建方法......

def create
  %i(name name1 name2 name3).each |this_name|
    User.create(name: user_params(this_name)) if user_params(this_name).present?
  end
end


def user_params
  params.require(:user).permit(:name, :name1, :name2, :name3)
end