2009-08-12 10 views
9

belongs_to a Message modelinde bir Comment model var. counter_cache güncellenmesi Message ait updated_at zaman güncellemek etmez ve ben cache_key için bunu istiyorum çünküKullanarak: counter_cache ve: aynı ilişkide dokunun

class Comment < ActiveRecord::Base 
    belongs_to :message, :counter_cache => true, :touch => true 
end 

Bunu yaptık: comments.rb ben şu var. Benim günlüğünde baktığında

Ancak, bu iki ayrı SQL güncellemeler

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 

bu sadece bir SQL çağrısı ile yapılabilir herhangi bir yolu var mı

neden olduğunu fark?

Edit Ayrıca Mesajın SELECT'ini önceden yaptığını fark ettim. Bu da gerekli mi?

+0

O kadar da – juanpastas

+0

Vay gibi hala? Yedi yıl sonra? Çılgınca. –

cevap

4

Büyük olasılıkla henüz optimize edilmediğinden büyük olasılıkla iki sorgu yapıyor.

Neden şube ve bir yama oluşturun: D

İlgili konular