有没有办法获取相关模型的最新更新?

时间:2019-06-12 02:20:13

标签: ruby-on-rails

我有Car模型,该模型与许多其他模型相关联。如何检查所有关联模型的updated_at并获取最新模型,例如:

  

车门在“这次”更新了

我的模型中有很多关联,因此获取每个关联并进行比较效率不高。如果有更好的方法,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在此处使用touch方法。基本上,触摸用于更新记录的updated_at字段。例如,Car.last.touch会将最后一个updated_at记录的Car字段设置为当前时间。
但是,touch也可以与关系一起使用,以触发关联对象上的touch方法。因此,在您的情况下,可能会这样:

class Car < ActiveRecord::Base
  belongs_to :corporation, touch: true
end

class Door < ActiveRecord::Base
  belongs_to :car, touch: true
end

# Door updation triggers updated_at of parent as well
@door = Door.last
@door.updated_at = DateTime.now
@door.save! # Updates updated_at of corresponding car record as well

在上面的示例中,@door.touch也可能已用于更新相应父项updated_at记录的Car