क्या सिनात्रा डिफ़ॉल्ट नोटफॉउंड त्रुटि पृष्ठ को ओवरराइड करने का कोई तरीका है ("सिनात्रा इस डाटी को नहीं जानता")? मैं सिनात्रा को केवल एक सादा स्ट्रिंग दिखाना चाहता हूं क्योंकि "उचित नहीं मिला" जब उचित मार्ग नहीं मिलता है, लेकिन जब मैं मार्ग के अंदर से 404 त्रुटि उठाता हूं तो मैं चाहता हूं कि यह पारित त्रुटि संदेश दिखाए।सिनात्रा डिफ़ॉल्ट ओवरराइड त्रुटि पृष्ठ
इस तरह not_found ब्लॉक को लागू:
get '/' do
begin
# some processing that can raise an exception if resource not found
rescue => e
error 404, e.message.to_json
end
end
:
not_found do
'Method not found.'
end
काम करता है, लेकिन इसकी नहीं एक मान्य विकल्प के बाद से मैं इस तरह मार्गों से अपने ही NotFound त्रुटि संदेश फेंक करने में सक्षम होना चाहता हूँ
लेकिन जैसा कि अपेक्षित नहीं है_फॉउंड ब्लॉक मेरे त्रुटि संदेश को ओवरराइड करता है।
मैं, जो काम करता है लेकिन बेजोड़ मार्गों के लिए नहीं, इसलिए यदि आपके पास पोस्ट किए गए जैसा कोई पापरात्रा एप्लिकेशन है और उदाहरण के लिए पहुंचने का प्रयास करें, तो यह/i_is_not_a_present_route' मैं अभी भी त्रुटि संदेश के बजाय डिफ़ॉल्ट sinatra पृष्ठ देखता हूं। –
तो यदि आपके पास एक अस्तित्वहीन मार्ग का अनुरोध है, तो 'not_found' मार्ग का उपयोग करें। अनुरोध ऑब्जेक्ट में, 'request.path' है जो आपको आपके उदाहरण में' this_is_not_a_present_route' 'देगा। मैंने भी उदाहरण अपडेट किया। –
हाय, समस्या यह है कि अंदरूनी मार्गों से उठाए गए अन्य 404 त्रुटि संदेशों को ओवरराइड न करें। इस तरह यह अनुरोधित पथ तक पहुंचने का प्रयास करते समय request.path को हमेशा प्रस्तुत करेगा, लेकिन अगर यह अंदरूनी मार्गों से कुछ 404 त्रुटि उठाई जाती है तो उसे दिखाएगा। –