मेरे पास Comment
मॉडल है जो belongs_to
Message
है।का उपयोग कर: 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 कॉल साथ किया जा सकता है क्या कारण हैं?
संपादित करें मैंने यह भी देखा कि यह संदेश का चयन पहले से ही करता है। क्या यह भी जरूरी है?
यह अभी भी है कि – juanpastas
वाह की तरह वास्तव में है,? सात साल बाद? वह पागल है। –