find
, where
और find_by_id
के बीच क्या अंतर है? जब आप उपयोगकर्ता को आईडी देने का प्रयास करते हैं तो वे सभी काम करते हैं।ढूंढने, कहां और find_by_id के बीच क्या अंतर है?
उत्तर
अंतर यह है कि रिकॉर्ड मिलने पर वे वापस लौटते हैं, या जब यह नहीं मिलता है। निम्नलिखित उदाहरणों पर विचार करें:
>> User.create name: 'THE USER' # creates a user with id = 1
>> User.find(1) # returns the user
>> User.find_by_id(1) # returns the user
>> User.where(id: 1).first # returns the user
जैसा कि आप देख सकते हैं, मौजूदा उपयोगकर्ता को किसी भी 3 विधियों का उपयोग करके लाया जा सकता है। where
उपयोग करने के साथ बड़ा अंतर आप श्रृंखला आदेशों (बेशक, first
बुला पहले बिना।)
के लिए जब आप एक रिकॉर्ड है कि मौजूदा नहीं है
>> User.find(2) # raises an exception
>> User.find_by_id(2) # nil
>> User.where(id: 2).first # nil
तो खोजने की कोशिश पर एक नजर है सकते हैं यहां, यह स्पष्ट है कि जब आप मौजूदा रिकॉर्ड नहीं होने के लिए find
का उपयोग करते हैं, तो आपको अपवाद मिलता है। यह अपवाद ActiveRecord::RecordNotFound
है जो उत्पादन वातावरण पर 404 प्रस्तुत करता है।
आशा है कि इससे मदद मिलती है!
अद्यतन
रेल 4 के लिए find_by
>> User.find_by(id: 1) # returns nil if there's no user with an id of 1
>> User.find_by!(id: 1) # raises ActiveRecord::RecordNotFound when no record is found
find
निम्न सिंटैक्स का उपयोग करता है => इस id
द्वारा पंक्ति को खोजने के लिए प्रयोग किया जाता है। यह एकल रिकॉर्ड लौटाएगा।
YourModel.find(2)
Address.find(1)
find_by
=> इस रिकॉर्ड के किसी भी विशेषताओं द्वारा पंक्ति प्राप्त करने के लिए प्रयोग किया जाता है। यदि स्थिति मेल खाती है तो यह पहले मिलान रिकॉर्ड वापस कर देगा।
YourModel.find_by_attrname("value")
Address.find_by_street_name_and_city("Andheri", "Newyork")
Addess.find_by_id(4)
where
=> इस प्रयोग किया जाता है सक्रिय रिकॉर्ड संबंध (अर्थात) वापस जाने के लिए शून्य या अधिक रिकॉर्ड किया जा सकता है शर्तों के आधार पर सक्रिय रिकॉर्ड मिलता है।
YourModel.where(:attrname => "something")
Address.where(:city => "Newyork")
लगता है => यह वापसी एकल रिकॉर्ड करता है, तो दी primary_key (आईडी) सिस्टम में मौजूद है अन्यथा में किसी त्रुटि दे देंगे।
Model.find(required_id_value)
find_by => यह एकल रिकॉर्ड वापस आ जाएगी दिया विशेषता पर निर्भर करता है, और अगर विशेषता के मान DB में मौजूद नहीं है यह शून्य वापस आ जाएगी।
Model.find_by_name("your name")
नाम यहां विशेषता है और यह आपके मॉडल में मौजूद होना चाहिए।
जहां => यह शून्य रिकॉर्ड के मामले में केवल एक रिकॉर्ड या शून्य वापस करने के लिए पहले उपयोग करने के लिए शून्य या अधिक रिकॉर्ड्स के साथ एक सक्रिय रिकॉर्ड संबंध लौटाएगा।
Model.where(id: id_value).first
** रिकॉर्ड.फिंड (0) ** 'ActiveRecord :: रिकॉर्ड नॉटफाउंड बढ़ाता है:' आईडी '= 0' ** रिकॉर्ड.find_by के साथ रिकॉर्ड नहीं मिला (आईडी: 0) ** रिटर्न 'शून्य' record.find_by_id (0) भी शून्य देता है हालांकि इसे रेल के बाद के संस्करणों में बहिष्कृत किया जाता है। ** रिकॉर्ड। कहीं (आईडी: 0) ** एक खाली सरणी देता है – Hanmaslah
- 1. अंतर और कहां के बीच क्या अंतर है?
- 2. संबंधों के बीच और कहां के बीच अंतर
- 3. कहां और शामिल होने के बीच क्या अंतर है?
- 4. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 5. # {} $ {} और% {} के बीच क्या अंतर है?
- 6. `&` और `ref` के बीच क्या अंतर है?
- 7. $ और $$ के बीच क्या अंतर है?
- 8. के बीच क्या अंतर है:। और: आर !?
- 9. वेरिलोग के बीच क्या अंतर है! और ~?
- 10. भिन्नता और '-' के बीच क्या अंतर है?
- 11. क्या $ @ और "$ @" के बीच कोई अंतर है?
- 12. * और * के बीच क्या अंतर है?
- 13. "$^एन" और "$ +" के बीच क्या अंतर है?
- 14. डेटा-डोजो-प्रकार और डोजोटाइप के बीच क्या अंतर है?
- 15. Subtotal और BaseSubtotal के बीच क्या अंतर है?
- 16. के बीच क्या अंतर है?
- 17. सिल्वरलाइट और एक्सबीएपी के बीच क्या अंतर है?
- 18. पर्यवेक्षकों और कॉलबैक के बीच बड़ा चित्र अंतर क्या है?
- 19. vim72 और vimfiles फ़ोल्डर के बीच क्या अंतर है?
- 20. आईनेमेरेबल और सरणी के बीच क्या अंतर है?
- 21. वेब सेवा और रिमोटिंग के बीच क्या अंतर है?
- 22. स्मैक और एस्मैक के बीच क्या अंतर है?
- 23. MASM.exe और ml.exe के बीच क्या अंतर है?
- 24. सीएसएस में कक्षाओं और आईडी के बीच क्या अंतर है?
- 25. 7zip के 7z.sfx और 7zsd.sfx के बीच क्या अंतर है?
- 26. फ़ंक्शन कॉल और फ़ंक्शन संदर्भ के बीच क्या अंतर है?
- 27. संदर्भ द्वारा कॉल के बीच क्या अंतर है और
- 28. एएसपी.नेट और एएसपी.नेट एमवीसी के बीच क्या अंतर है?
- 29. जीईटी और पोस्ट एन्क्रिप्शन के बीच क्या अंतर है?
- 30. "Aspnet_regiis -ir" और "aspnet_regiis -iru" के बीच क्या अंतर है?
आप नोट करना चाहिए कि सभी 'find_by_ *' तरीकों रेल 4 में 'find_by के पक्ष में deprecrated कर रहे हैं (*: ...)' तो यहाँ होगा कि: 'find_by (आईडी: ...) ' – pjam
वाह मुझे यह नहीं पता था। धन्यवाद! इसका उल्लेख क्यों नहीं किया गया है? http://edgeguides.rubyonrails.org/4_0_release_notes.html – jvnill