मैंने ऐसी परिस्थिति पर ठोकर खाई है जहां मेरा एप्लिकेशन किसी आईडी की तलाश करता है जो डेटाबेस में मौजूद नहीं है। एक अपवाद फेंक दिया जाता है। बेशक, यह किसी भी वेब डेवलपर के लिए एक सुंदर मानक स्थिति है।आईडी नहीं मिलने पर सामान्य नियंत्रक में सामान्य बचाव - RoR
this answer के लिए धन्यवाद मुझे पता है कि इस स्थिति से बचाव सौदों का उपयोग कर बहुत बड़े करीने से, इसलिए जैसे:
def show
@customer = Customer.find(params[:id])
rescue ActiveRecord::RecordNotFound #customer with that id cannot be found
redirect_to action: :index #redirect to index page takes place instead of crashing
end
मामले में ग्राहक नहीं पाया जा सकता है, उपयोगकर्ता सूचकांक पृष्ठ पर पुनः निर्देशित किया जाता है। यह बिल्कुल ठीक काम करता है।
अब, यह सब अच्छा है, लेकिन मुझे शो, संपादित, नष्ट, इत्यादि जैसे प्रत्येक नियंत्रक विधि के लिए एक ही विशिष्ट प्रयास की आवश्यकता है, जो एक विशिष्ट आईडी की आवश्यकता है। या वहाँ किसी भी तरह से आम तौर पर मेरी नियंत्रक बताने के लिए है कि अगर वह अपने तरीकों में से किसी में आईडी नहीं मिल रहा है, यह सूचकांक पृष्ठ पर रीडायरेक्ट करेगा नहीं है (:
कहा करने के बाद कि, यहाँ मेरे सवाल है , आमतौर पर, एक विशिष्ट कार्य करते हैं)?
बहुत बढ़िया, यह चाल है, धन्यवाद! जिज्ञासा से बाहर: यह विधि निजी क्यों होनी चाहिए? – weltschmerz
बस सफाई के लिए: विधि को अन्य नियंत्रकों के लिए दृश्यमान होने की आवश्यकता नहीं है, यही कारण है कि इसे निजी घोषित किया जाता है। यदि विधि निजी घोषित नहीं की जाती है तो यह समान रूप से काम करेगी। – Baldrick
आप एक फ्लैश संदेश भी जोड़ सकते हैं फ़्लैश [: नोटिस] = "कोई रिकॉर्ड नहीं मिला" –