ruby - 如何对带有集合的多个对象使用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
解决方案
在“现代” Rails 版本中(显然是从 3.0 开始),您可以使用
update_all
(https://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 更新。
推荐阅读
- php - 如何使用php连接wsdl api
- laravel - Laravel 5.6:如何使用查询生成器创建子查询
- php - 如何将搜索表单连接到数据库并在 Laravel 上检索数据
- php - 带有图像的下拉列表
- github - 将 Kaggle 数据集上传到 Github
- javascript - 我可以使用 Array.prototype.map 的模数来每 3 个索引插入新行吗?
- c# - 从不同的表 aspn.net 添加值后提高方法的速度
- java - Plutext 的 PDF 转换器限制
- php - 如何根据单击的 id 在选择选项中从数据库中获取值
- c - 为什么我们不能使用 a 而不是 &a 在 C 编程语言中存储变量 a 的值?