किसी सरणी के लिए, आप इनमें से किसी एक का उपयोग कर सकते हैं:
# Will raise exception if any value not found
User.find( [1,3,5] )
# Will not raise an exception
User.find_all_by_id( [1,3,5] ) # Rails 3
User.where(id: [1,3,5]) # Rails 4
यदि आप किसी श्रेणी का उपयोग कर रहे हैं, तो आप इनका उपयोग कर सकते हैं:
# Will raise exception if any value not found
User.find((1..4).to_a) #same as User.find([1,2,3,4])
# Will not raise an exception
User.find_all_by_id(1..4) # Rails 3
User.where(id: 1..4) # Rails 4
जैसा कि @diego.greyrobot एक टिप्पणी में नोट करता है, एक श्रेणी SQL के बीच खंड का कारण बनती है, जबकि एक सरणी SQL IN खंड का कारण बनती है।
नहीं User.find_by_id()
. का उपयोग करें -- यह केवल एक रिकॉर्ड लौटाएगा, चाहे आप कितनी भी आईडी पास करें।