Ruby on rails 根据rails对象在数组中的位置更新其列
我在Rails中为一些表创建了一个对象数组。我想通过一个活动记录查询,根据该对象在数组中的位置来更新其order字段。我该怎么做 我尝试了Ruby on rails 根据rails对象在数组中的位置更新其列,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我在Rails中为一些表创建了一个对象数组。我想通过一个活动记录查询,根据该对象在数组中的位置来更新其order字段。我该怎么做 我尝试了update\u all.(“order”=>?)但无法获取在update\u all中更新的对象 假设@user(只有您可以使用相应对象的引用)是对象数组(Activerecord),那么要更新数组中所有用户的顺序字段,您必须运行以下查询 @user.update_all(order_field: value) 假设您有一组帖子,那么您可以执行如下操作 p
update\u all.(“order”=>?)
但无法获取在update\u all
中更新的对象 假设@user(只有您可以使用相应对象的引用)是对象数组(Activerecord),那么要更新数组中所有用户的顺序字段,您必须运行以下查询
@user.update_all(order_field: value)
假设您有一组
帖子
,那么您可以执行如下操作
posts.each_with_index do |post, index|
post.update_attributes order: index
end
这将对每个post
执行一个查询。如果您想要一个查询来更新数组中的所有帖子,那么实现起来就困难多了。我能想到的选择是:
- 批量更新
- 使用存储过程