【发布时间】:2018-04-12 05:31:45
【问题描述】:
我在 Rails 中有一个用于某个表的对象数组。我想使用单个 Active Record 查询通过该对象在数组中的位置来更新其 order 字段。我怎样才能做到这一点?
我尝试了update_all.(:"order" => ?),但无法获取update_all 中正在更新的对象。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord
我在 Rails 中有一个用于某个表的对象数组。我想使用单个 Active Record 查询通过该对象在数组中的位置来更新其 order 字段。我怎样才能做到这一点?
我尝试了update_all.(:"order" => ?),但无法获取update_all 中正在更新的对象。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord
假设@user(只有一个可以使用相应对象的引用)是对象数组 (Activerecord) ,那么要更新数组中所有用户的订单字段,您必须运行以下查询
@user.update_all(order_field: value)
【讨论】:
假设你有一个posts的数组,那么你可以像下面这样操作
posts.each_with_index do |post, index|
post.update_attributes order: index
end
这将为每个post 执行一个查询。如果您想要一个查询来更新数组中的所有帖子,那就更难实现了。我能想到的选项:
【讨论】: