【发布时间】:2018-11-08 17:53:02
【问题描述】:
我通过 has_one 有两个相关模型,如下所示:
class Asset
has_one :device
class Device
belongs_to :asset
我有这样的资产的 ActiveRecord_Relation:
assets = Asset.all
我需要为每个资产更新每个设备中的一个字段。我不想为每个相关设备创建一个数组,因为它效率很低。我试过这样的事情:
assets.joins(:device).update_all( {:device=>{:my_field=>6} )
【问题讨论】:
-
有什么原因不能直接用
Device.update_all更新Device?是否存在不属于资产的设备? -
Asset.all 是一个简化的示例。实际上,ActiveRecord_Relation 是通过基于各种搜索条件的大量范围计算得出的。搜索完成后,我在 ActiveRecord_Relation 中剩下 100k 资产模型。
标签: ruby-on-rails ruby-on-rails-5 rails-activerecord