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