2014-10-18 48 views
1

我有兩個模型是這樣的:保存模型時,可以暫時禁用belongs_to關聯的觸摸嗎?

class Topic < ActiveRecord::Base 
    has_many :replies 
end 

class Reply < ActiveRecord::Base 
    belongs_to :topic, touch: true 
end 

當我保存reply.save!touch在主題回覆將被調用,話題updated_at將更新爲當前時間。

但有時我不想在創建答覆時自動更改updated_at。那麼,如何在我保存回覆時禁用touch

+0

請參閱此。 http://stackoverflow.com/questions/16221586/skipping-touch-associations-when-saving-an-activerecord-object – bhugo313 2014-10-18 23:15:59

回答

1

我建議相反是明確的,只有在你想要的情況下才會觸碰。負面測試很快會變得難以管理,並且很難被那些不熟悉代碼的人拿起。

您可以通過致電topic.touch

+0

+1從長遠來看,你會更快樂,自動化程度更低,基於回調行爲在你的模型中。相反,嘗試創建一個業務邏輯方法來創建回覆,並在一個地方處理觸摸或不觸摸的邏輯。很多人現在使用所謂的「服務對象」,隨機使用谷歌搜索文章:https://blog.engineyard.com/2014/keeping-your-rails-controllers-dry-with-services – mtjhax 2014-10-20 20:05:16