在条件下使用 Update_all

Use Update_all with conditions

我正在尝试更新数组的所有元素,但我遇到了这个错误

undefined method `update_all' for ...

@group.questions.where(user_id: current_user.id).last(@post.question_counter).update_all(post_id: @post.id)

而当我尝试 update_all 时没有条件,例如 :

@group.questions.update_all(post_id: @post.id)

该方法有效。 运行 这个方法你有解决办法吗?我可以做这样的事情来解决它,但我认为这不是很优雅和高效

@questions = @group.questions.where(user_id: current_user.id).last(@post.question_counter)
@questions.each do |question|
  question.update(post_id: @post.id)
end 

试试

@group.questions.where(user_id: current_user.id).
    order('questions.id DESC').limit(@post.question_counter).
    update_all(post_id: @post.id)