在RoR中创建故意的重复记录

时间:2018-08-17 21:11:01

标签: ruby-on-rails

我的目标是创建空白问题,然后将其分配给编辑者进行创建。

为此,我正在尝试创建一个表单,在其中输入主题和#个问题,然后让后端在该#上进行迭代,以创建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

1 个答案:

答案 0 :(得分:1)

怎么样?

def create
  5.times.each_with_object([]) do |_, to_return|
    to_return << Question.create(question_params)
  end
end

这将返回带有五个array记录的@question,所有记录都使用相同的question_params