चेक आउट: http://rails.rubyonrails.org/classes/ActiveSupport/SecureRandom.html
मेरा मानना है कि आप एक के लिए देख रहे अलग विधि: #random_number।
SecureRandom.random_number(a_big_number)
के बाद से #hex एक हेक्साडेसिमल संख्या देता है, यह एक यादृच्छिक नतीजा यह है कि केवल संख्यात्मक वर्ण निहित लिए पूछने के लिए असामान्य होगा।
मूल उपयोग के मामलों के लिए, #rand का उपयोग करना काफी आसान है।
rand(9999)
संपादित:
मैं एक पुस्तकालय है कि निर्दिष्ट लंबाई के एक यादृच्छिक संख्या उत्पन्न करता है के बारे में पता नहीं कर रहा हूँ, लेकिन यह काफी सरल एक लिखने के लिए लगता है। यहाँ यह पर मेरे पास है:
def rand_by_length(length)
rand((9.to_s * length).to_i).to_s.center(length, rand(9).to_s).to_i
end
विधि #rand_by_length का कोई पैरामीटर के रूप में एक पूर्णांक निर्दिष्ट लंबाई लेता है और लंबाई के आधार पर अधिकतम अंकों के एक यादृच्छिक संख्या उत्पन्न करने के लिए कोशिश करता है। स्ट्रिंग # केंद्र का प्रयोग यादृच्छिक संख्या वर्णों के साथ गायब संख्याओं को पैड करने के लिए किया जाता है। सबसे खराब मामला निर्दिष्ट लंबाई के प्रत्येक अंक के लिए #rand कॉल करता है। यह आपकी ज़रूरत को पूरा कर सकता है।
धन्यवाद के लिए मैं इसे और समझाऊंगा, मैं वास्तव में विशिष्ट लंबाई के साथ एक यादृच्छिक संख्या की तलाश में था (चलो एस ए 8), हेक्स लंबाई को प्रतिबंधित करता है, इसलिए कुछ ऐसा सोच रहा है, सिक्योररैंडम में केवल संख्याएं उत्पन्न होंगी। SecureRandom.random_number (n) शायद यह अनुमति नहीं देगा? [random_number] (http://rails.rubyonrails.org/classes/ActiveSupport/SecureRandom.html#M000733) – swapab
आपकी टिप्पणी के आधार पर मेरा उत्तर अपडेट किया गया। – rossta
यह कूल है ... धन्यवाद उस कोड के लिए बहुत कुछ ... – swapab