我的目标是创建空白问题,然后将其分配给编辑者进行创建。
为此,我正在尝试创建一个表单,在其中输入主题和#个问题,然后让后端在该#上进行迭代,以创建x个有意重复的问题。
控制器:
def create
@question = []
5.times do
@question = Question.new(question_params)
end
end
参数:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"unfqSHnfdNhidUCvLf3Zck8MeP59Qobe2bJz0tUhWQ1SUh29a8LdoGAYpUwbOOJS8U+wzlDQVBXQYcKeRqLDmQ==", "question"=>{"name"=>"four", "topic_id"=>"1"}, "commit"=>"Save "}
以上想法仅创建一条记录,我认为是因为控制器正在迭代,但是从表单仅输入了一组参数。
我把这一切都弄错了吗?
编辑 子孙后代的完整工作控制器,请看下面的答案。
controller do
def create
if @question = 5.times.each_with_object([]) do |_, to_return|
to_return << Question.create(question_params)
end
redirect_to admin_questions_path, notice: "Questions created"
else
# Handle failure
redirect_to admin_questions_path, notice: "Questions NOT created"
end
end
答案 0 :(得分:1)
怎么样?
def create
5.times.each_with_object([]) do |_, to_return|
to_return << Question.create(question_params)
end
end
这将返回带有五个array
记录的@question
,所有记录都使用相同的question_params
。