将记录添加到has_many
关联并保存父级时,该父updated_at
级不会碰撞:
order = Order.new
order.save
pp order
=> #<Order id: 3, created_at: "2013-04-18 15:25:09", updated_at: "2013-04-18 15:25:09">
order.line_items << LineItem.new()
pp order.line_items
=> [#<LineItem id: 4, order_id: 3, created_at: "2013-04-18 15:26:16", updated_at: "2013-04-18 15:26:29", product_id: 123>]
order.save
pp order.reload
=> #<Order id: 3, created_at: "2013-04-18 15:25:09", updated_at: "2013-04-18 15:25:09">
这是有道理的,因为Order
它没有被触及;外键位于LineItem
.
但是,在这种情况下,我想查询Order
并仅查找在过去 30 分钟内Order
收到新LineItem
s 的 s(即:在过去 30 分钟内“更新”)。
我不确定在这里最好做什么,以及如何轻松实现这一目标。我可以设置一些标志或方法来让 ARupdated_at
像描述的那样更新父母吗?还是我应该通过一些钩子来做到这一点?如果是这样,什么钩子?或者我应该将此时间戳存储在不同的列中吗?
请注意,我可以查询line_items.updated_at
槽 a join(:line_items)
,但这可能会使我的代码更混乱且性能更低:或者这是 Rails 中此类问题的首选方式?