2012-03-21 10 views
14

मैं रेल का उपयोग कर रहा हूं 3. उत्पादन रेल में अपवादों को अच्छी तरह से संभालता है और मेरी सार्वजनिक निर्देशिका से मेरी स्थिर 404.html, 500.html आदि फ़ाइलों को लोड करता है। हालांकि, यह इन फ़ाइलों को मेरे लेआउट/application.html.erb फ़ाइल में लोड करता है। मैं अपने अनुप्रयोग लेआउट का उपयोग किए बिना इन फ़ाइलों को लोड करने के लिए रेल को निर्देश देने का एक तरीका ढूंढ रहा हूं - उदा। बस स्थिर एचटीएमएल फ़ाइल की सेवा करें और कुछ और नहीं। इसे निष्पादित करने का श्रेष्ठ तरीका क्या है?साइट लेआउट के बिना रेल स्थिर 404, 500 त्रुटि पृष्ठों को प्रस्तुत करने के लिए कैसे?

धन्यवाद!

+1

जैसा कि मुझे पता है, डिफ़ॉल्ट रूप से रेल इन लेआउट/application.html.erb लोड किए बिना इन त्रुटि पृष्ठों को लोड करता है, अगर मैं गलत हूं तो मुझे सही करें –

+1

मैं उसकेोकू पर होस्टिंग कर रहा हूं और यह इन फ़ाइलों को मेरे ऐप लेआउट में लोड कर रहा है .. – istan

उत्तर

50

render :file => 'public/404.html', :status => :not_found, :layout => false

+4

यह होना चाहिए ': status =>: not_found' और नहीं': status => 'not_found' 'वह मुझे गड़बड़ कर रहा था, लेकिन अब यह काम कर रहा है। धन्यवाद! – Josh

+0

लेकिन मैं कोड की इस पंक्ति को कहां रखूं? आपके नियंत्रक में – thedanotto

+2

@ thedanotto कहीं। – MikDiet

1

एक के लिए उन्नत रेल ढांचे के भीतर काम कर रहे दृष्टिकोण। अद्यतन अपने routes फ़ाइल:

get "/404", to: "errors#error_404" 
get "/500", to: "errors#error_500" 

के साथ एक ErrorsController जोड़ें:

layout false 

def error_404 
    render status: 404 
end 

def error_500 
    render status: 500 
end 

फिर app/views/errors/ के भीतर एक snazy image और एक खोज पट्टी के साथ अपने error_404.erb और error_500.erb फ़ाइलें जोड़ें।

More info here

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