-1
假设我们有一个具有name属性的User模型。 我想创建一个包含多个文本字段的表单,以在数据库中创建多个记录。我能够使用form_tag完成此操作,但有没有办法使用form_for来完成它?Rails - 以一种形式创建一个模型的多个记录
假设我们有一个具有name属性的User模型。 我想创建一个包含多个文本字段的表单,以在数据库中创建多个记录。我能够使用form_tag完成此操作,但有没有办法使用form_for来完成它?Rails - 以一种形式创建一个模型的多个记录
要使用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
我会坚持我的form_tag,因为它对我来说似乎更容易维护。谢谢史蒂夫! – Ancinek
可以使另一个模型称为用户名,让你的form_for内多个嵌套形式。 – luissimo