मैं थोड़ी देर के लिए रेल के साथ काम कर रहा हूं और एक चीज जो मैं लगातार अपने आप को पाता हूं यह देखने के लिए जांच कर रहा है कि कुछ विशेषता या ऑब्जेक्ट मेरे दृश्य कोड में शून्य है । मुझे आश्चर्य है कि यह हमेशा सबसे अच्छा विचार है।रूबी पर रूबी में नील देखने के लिए जांच
मेरा तर्क अभी तक रहा है क्योंकि मेरे आवेदन उपयोगकर्ता इनपुट पर भरोसा करते हैं अप्रत्याशित चीजें हो सकती हैं। यदि मैंने सामान्य रूप से प्रोग्रामिंग से एक बात सीखी है तो यह है कि उपयोगकर्ता उन चीजों को इनपुट करते हैं जो प्रोग्रामर ने नहीं सोचा था कि रन-टाइम त्रुटियों के सबसे बड़े स्रोतों में से एक है। शून्य मूल्यों की जांच करके मैं उम्मीद कर रहा हूं कि मेरे विचारों को सफलतापूर्वक समस्या को संभालने के लिए।
बात यह है कि हालांकि मैं आमतौर पर विभिन्न कारणों से अपने मॉडल या नियंत्रक कोड में समान शून्य या अमान्य मान जांच करता हूं। मैं इसे सबसे सख्ती से कोड डुप्लिकेशंस नहीं कहूंगा, लेकिन यह बहुत ड्रवाई प्रतीत नहीं होता है। अगर मैंने पहले से ही अपने नियंत्रक में शून्य वस्तुओं की जांच की है तो यह ठीक है अगर मेरा विचार सिर्फ वस्तु को मानता है तो वास्तव में शून्य नहीं है? उन गुणों के लिए जो प्रदर्शित किए जा सकते हैं, यह हर बार जांचने के लिए मुझे समझ में आता है, लेकिन वस्तुओं के लिए मुझे यकीन नहीं है कि सबसे अच्छा अभ्यास क्या है।
यहाँ मैं के बारे में बात कर रहा हूँ का एक सरलीकृत, लेकिन विशिष्ट उदाहरण है:
नियंत्रक कोड
def show
@item = Item.find_by_id(params[:id])
@folders = Folder.find(:all, :order => 'display_order')
if @item == nil or @item.folder == nil
redirect_to(root_url) and return
end
end
दृश्य कोड
<% if @item != nil %>
display the item's attributes here
<% if @item.folder != nil %>
<%= link_to @item.folder.name, folder_path(@item.folder) %>
<% end %>
<% else %>
Oops! Looks like something went horribly wrong!
<% end %>
यह एक अच्छा विचार है या यह सिर्फ है मूर्ख?