मैंने देखा है कि अधिकांश उदाहरण तालिका में पंक्तियों की गिनती करते हैं, फिर किसी एक को चुनने के लिए यादृच्छिक संख्या उत्पन्न करते हैं। ऐसा इसलिए है क्योंकि विकल्प जैसे RAND()
अक्षम हैं कि वे वास्तव में प्रत्येक पंक्ति प्राप्त करते हैं और उन्हें एक यादृच्छिक संख्या असाइन करते हैं, या इसलिए मैंने पढ़ा है (और डेटाबेस विशिष्ट मुझे लगता है)।
आप एक विधि जोड़ सकते हैं जैसे मुझे मिली यहां ।
module ActiveRecord
class Base
def self.random
if (c = count) != 0
find(:first, :offset =>rand(c))
end
end
end
end
यह ऐसा कर देगा ताकि आपके द्वारा उपयोग किए जाने वाले किसी भी मॉडल में random
. नामक एक विधि हो जो ऊपर वर्णित तरीके से काम करता है:तालिका में पंक्तियों की गिनती के भीतर एक यादृच्छिक संख्या उत्पन्न करता है, फिर उस यादृच्छिक संख्या से जुड़ी पंक्ति प्राप्त करता है। तो मूल रूप से, आप केवल एक ही फ़ेच कर रहे हैं जिसे आप शायद पसंद करते हैं :)
आप यह रेल प्लग इन पर भी एक नज़र डाल सकते हैं ।