2016-09-16 66 views
-1

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

+0

可以使另一个模型称为用户名,让你的form_for内多个嵌套形式。 – luissimo

回答

1

要使用form_for做到这一点是可能的,但因为这是真的不是涉及到一个单一的模型实例的形式,你真的应该坚持form_tag

做它作为form_for每个名字必须是属性。

你可以做(​​在你的模型)......

attr_accessor :name1, :name2, :name3 

这将让即使他们不是在数据库表列的其他名称被接受。

在创建方法

则...

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 
+0

我会坚持我的form_tag,因为它对我来说似乎更容易维护。谢谢史蒂夫! – Ancinek

相关问题