首页 > 解决方案 > 如何对带有集合的多个对象使用rails更新方法

问题描述

我正在尝试使用带有更新集合对象的 rails update 方法更新多个对象,如下代码:(无法真正找到集合方法)

def update

      @reiew = Review.find(reivew_params)
       review.update!(reivew_params)

        if @reivews.update(reivew_params)
        respond_to do |format|
        format.html { redirect_to reivew_path}
      end
    else
        respond_to do |format|
        format.html { notice: 'saved errors'}
      end
    end
  end

标签: rubyruby-on-rails-3rails-activerecord

解决方案


在“现代” Rails 版本中(显然是从 3.0 开始),您可以使用

update_allhttps://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-update_all

像这样:

Review.where(id: [2,5,10]).update_all(reviews_params)

. 该代码将Reviews使用 id 2、5 和 10 更新。


推荐阅读