我有Projelements
,它們是這樣的:如何在Ruby on Rails中計算和使用最新更新的對象?
Milestone
Task
- ...等...
每個Projelement
可以有一個或多個嵌入式Comments
(感謝Mongoid
)。
我希望能夠輕鬆地說:
給我的Projelements
名單通過時,他們最後更新
凡last_updated
的Projelement
是較大分類:
this_projelement.updated_at
或if this_projelement.comments.count > 0 then this_projelement.comments.last.updated_at
我可以用上面的邏輯創建一個Projelement
類方法last_updated_at
。
但我真的想和做我Projelements
的查詢結束後,使用上述邏輯,以同樣的方式,你會使用屬性做一個查詢檢索最新更新Projelement
。
以前,我試圖用一個屬性唯一的方法:
使用updated_at
屬性的嘗試:如果您更新Projelement
的屬性此時間戳更新,但如果你更新嵌入Comments
不會被更新。因此,只要添加了Comment
,我就可以手動更新this_projelement.updated_at
。但設計感覺脆弱。
還想過擁有一個單獨的屬性(例如last_updated_at
),以便updated_at
的現有語義不會混淆。但設計也感覺脆弱。
什麼是Rails的方式?