9
我有一個Comment
模型belongs_to
一個Message
。在comments.rb
我有以下幾點:使用:counter_cache和:觸摸同一關聯
class Comment < ActiveRecord::Base
belongs_to :message, :counter_cache => true, :touch => true
end
我已經做到了這一點,因爲更新counter_cache
不更新updated_at
時間Message
的,而且我也喜歡爲cache_key
。
然而,當我在我的日誌看我注意到,這會導致兩個單獨的SQL更新
Message Load (4.3ms) SELECT * FROM `messages` WHERE (`messages`.`id` = 552)
Message Update (2.2ms) UPDATE `messages` SET `comments_count` = COALESCE(`comments_count`, 0) + 1 WHERE (`id` = 552)
Message Update (2.4ms) UPDATE `messages` SET `updated_at` = '2009-08-12 18:03:55', `delta` = 1 WHERE `id` = 552
有什麼辦法這個只能與一個SQL調用來完成?
編輯我也注意到它事先做了一個SELECT消息。這也是必要的嗎?
它還是這樣 – juanpastas 2016-08-02 02:55:26
哇,真的嗎?七年後?太瘋狂了。 – 2016-08-29 17:05:29