2011-09-14 9 views
6

रेल find_by_ तरीकों शून्य के बजाय एक खाली सरणी नहीं लौट जाना चाहिए?रेल find_by_ तरीकों शून्य के बजाय एक खाली सरणी नहीं लौट जाना चाहिए?

यह वहाँ के लिए कोई अभिलेख find_by_ शर्त से मिलान होने के लिए सामान्य है, लेकिन लौटने शून्य मतलब नहीं है। क्योंकि उसके बाद मेरे विचार त्रुटियों में की तरह समझदार कोड द्वारा उठाया जाता है:

<% for thing in @thing_that_might_be_an_array_or_might_be_nil do %> 

के बाद से find_by_ हमेशा एक सरणी देता है, केवल 1 रिकॉर्ड नहीं है, भले ही, यह भी एक सरणी अगर वहाँ 0 रिकॉर्ड लौटना चाहिए। फिर उन सभी

<% @thing.each 

और हमारे विचारों में

<% for thing in @thing 

चुपचाप से अधिक के बजाय पैदा करने में पारित कर दिया हो जाएगा एक "हमें खेद है, लेकिन कुछ गलत हो गया।" (या मुझे क्या याद आ रहा है? इस से निपटने का वर्तमान सबसे अच्छा अभ्यास क्या है?)

+0

और रेल 4 में, यह सब विवादास्पद है। – Arcolye

उत्तर

6

find_by_ का उपयोग एक रिकॉर्ड खोजने के लिए किया जाता है, जो आपकी शर्तों से मेल खाता है।

find_all_by_ रिकॉर्ड, एक सरणी, जो आपके शर्तें पूरी नहीं का एक सेट खोजने के लिए प्रयोग किया जाता है।

तो, हाँ, मुझे लगता है कि यह पूरी तरह से सामान्य है find_by_ शून्य लौटने के लिए करने के लिए, और नहीं एक खाली सरणी, जब यह कुछ भी नहीं मिल रहा है, क्योंकि आप केवल एक सब मांग रहे हैं।

+0

find_all_by_ ... – Arcolye

संबंधित मुद्दे