मैं तालिका में स्तंभों को क्रमबद्ध करने के लिए मेटा_सार्च का उपयोग कर रहा हूं। मेरे टेबल कॉलम में से एक एक विशेष मॉडल के लिए संबंधित रिकॉर्ड की गिनती है।रेल मेटा_सेर्च मणि: संबंधित मॉडल की गणना द्वारा क्रमबद्ध करें
मूल रूप से यह बताया गया है:
class Shop < ActiveRecord::Base
has_many :inventory_records
def current_inventory_count
inventory_records.where(:current => true).count
end
end
class InventoryRecord < ActiveRecord::Base
belongs_to :shop
#has a "current" boolean on this which I want to filter by as well
end
मेरी दुकान # सूचकांक ध्यान में रखते हुए मैं एक मेज है कि प्रत्येक दुकान के लिए current_inventory_count बाहर सूचीबद्ध करता है। क्या इस गिनती से दुकानों को आदेश देने के लिए मेटा_सार्च का उपयोग करने के लिए वैसे भी है?
मैं अपनी current_inventory_count विधि का उपयोग नहीं कर सकता क्योंकि मेटा_सार्च केवल कस्टम विधियों का उपयोग कर सकता है जो ActiveRecord :: रिलेशनशिप प्रकार लौटाते हैं।
ऐसा करने का एकमात्र तरीका यह है कि मैं कुछ कस्टम एसक्यूएल करना चाहता हूं जिसमें "वर्चुअल" कॉलम में गिनती शामिल है और इस कॉलम द्वारा सॉर्टिंग करें। मुझे यकीन नहीं है कि यह भी संभव है।
कोई विचार?
मैं रेल 3.0.3 और नवीनतम मेटा_सार्च का उपयोग कर रहा हूं।
मेरे सबसे अच्छे शर्त सिर्फ दुकानें है कि मैं सिर्फ यह सुनिश्चित करने के लिए एक "current_inventory_records_count" db स्तंभ जोड़ने के लिए किया जाएगा हमेशा before_save का उपयोग सही है ? – jfeust