2012-12-19 45 views
8

我有一個問題和答案的應用程序。每當有人添加問題答案時,我想更新問題中的updated_at時間戳。何時觸摸Rails中的belongs_to觸發?

因此,我在Answer模型中使用了touch。

belongs_to :question, :touch => true 

但是,似乎在沒有添加答案時更新時間戳。我想弄清楚如何/爲什麼。自從添加這種觸摸方法以來,這一直髮生。

因此,我想確認何時觸摸觸摸?只有當一個答案對象被創建,編輯或銷燬?還有其他事件嗎?即不應僅僅通過在特定情況下查看答案對象來觸發它?

我找不到任何可靠的文檔來描述如何在belongs_to關係的上下文中精確觸摸。

這有點令人費解的原因是,該應用程序相對簡單,並沒有給用戶提供任何編輯或銷燬答案的功能。

回答

11

來源:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

:觸摸 如果爲true,關聯的對象會感動(中的updated_at /上現在設置屬性)時,這個記錄可以保存或銷燬。如果您指定了一個符號,那麼除了updated_at/on屬性之外,該屬性將使用當前時間進行更新。

belongs_to :company, :touch => true

belongs_to :company, :touch => :employees_last_updated_at