2009-08-12 8 views
9

मेरे पास Comment मॉडल है जो belongs_toMessage है।का उपयोग कर: counter_cache और: उसी संगठन में स्पर्श करें

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

मैं यह कर दिया है क्योंकि counter_cache अद्यतन करने Message की updated_at समय अपडेट नहीं करता, और मैं इसे cache_key के लिए करना चाहते हैं: comments.rb में मैं निम्नलिखित है।

हालांकि, जब मैं अपने लॉग में देखा मैंने देखा है कि यह दो अलग-अलग एसक्यूएल अपडेट

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 कॉल साथ किया जा सकता है क्या कारण हैं?

संपादित करें मैंने यह भी देखा कि यह संदेश का चयन पहले से ही करता है। क्या यह भी जरूरी है?

+0

यह अभी भी है कि – juanpastas

+0

वाह की तरह वास्तव में है,? सात साल बाद? वह पागल है। –

उत्तर

4

यह शायद दो प्रश्न पूछता है क्योंकि इसे अभी तक अनुकूलित नहीं किया गया है।

नहीं क्यों शाखा और एक पैच बनाने: डी

संबंधित मुद्दे