परीक्षण मोर्चे पर, ऐसा करने का वास्तव में एक अच्छा तरीका (विकास उद्देश्यों के लिए, कम से कम) यात्री का उपयोग करना और रेल पर्यावरण को उत्पादन में सेट करना (या साइट कॉन्फ़िगरेशन में "RailsEnv विकास" को टिप्पणी करना) है। कम से कम इस तरह आप नकल कर सकते हैं कि यह उत्पादन में कैसे काम करता है।
लेकिन, ऐसा करने के लिए, मेरे पास कई प्रकार की सेटिंग्स फ़ाइलें हैं जो स्टार्टअप पर पार्स हो जाती हैं और पर्यावरण के आधार पर उठाई जाती हैं। सेटिंग्स में से एक यह है कि त्रुटि पृष्ठों को दिखाने के लिए (AppSettings.show_page_errors?)।तब मेरे आवेदन नियंत्रक में, मैं
if !AppSettings.show_page_errors?
alias_method :rescue_action_locally, :rescue_action_in_public
end
तो, यह आम तौर पर डिफ़ॉल्ट सेटिंग्स पर सेट कर दिया जाता है, लेकिन कभी कभी मैं वास्तव में देखने के लिए वास्तव में क्या हो रहा है की जरूरत है, तो मैं उत्पादन पर इसे बंद कर सकते हैं।
दूसरा चरण कस्टम पृष्ठों का उपयोग करना है। मेरे मामले में, मेरे पास त्रुटि के आधार पर टेम्पलेट्स हैं जिनमें Google फॉर्म में सबमिट करने के लिए एक फॉर्म भी शामिल है (क्योंकि मेरा सर्वर टूटा जा सकता है)। ऐसा करने के लिए, अपने आवेदन नियंत्रक में रखते (और जरूरत के रूप में परिवर्तित):
def render_optional_error_file(status_code)
status = interpret_status(status_code)
render :template => "/errors/#{status.to_s[0,3]}.html.haml", :status => status, :layout => 'application.html.haml' if [404, 422, 500].include?(status)
render :template => "/errors/unknown.html.haml", :status => status, :layout => 'application.html.haml' unless [404, 422, 500].include?(status)
end
इस टेम्पलेट का उपयोग कर स्थिति कोड 404, 422, और 500 प्रस्तुत करना होगा, लेकिन अन्यथा यह अज्ञात उपयोग करता है। अगर आपको दूसरों को संभालने की ज़रूरत है, तो यह सिर्फ इस विधि को अपडेट करने और टेम्पलेट जोड़ने का मामला है।
रेल नहीं 3 दोस्ताना – AnApprentice
@AnApp हो सकता है .. यह एक पुराना उत्तर है - आप रेल 3 संस्करण को एक अलग उत्तर के रूप में पोस्ट कर सकते हैं। – Gishu
रेल 3 संस्करण क्या है? –