हमने एक मणि बनाया है जो आपके लिए यह करता है: exception_handler
।
वहाँ भी एक महान ट्यूटोरियल here है।
मैं भी विषय here पर एक व्यापक जवाब लिखा।
मिडिलवेयर
# config/application.rb
config.exceptions_app = ->(env) { ExceptionController.action(:show).call(env) }
नियंत्रक
# app/controllers/exception_controller.rb
class ExceptionController < ApplicationController
respond_to :json, :js, :html
before_action :set_status
def show
respond_with @status
end
private
def set_status
def status
@exception = env['action_dispatch.exception']
@status = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
@response = ActionDispatch::ExceptionWrapper.rescue_responses[@exception.class.name]
end
end
end
देखें
# app/views/exception/show.html.erb
<h1>404 error</h1>
यह बहुत सरल versi यदि आप चाहें तो मैं और अधिक समझा सकता हूं।
मूल रूप से, आप config.exceptions_app
मिडलवेयर में हुक करने की जरूरत है, यह middleware
ढेर में किसी भी अपवाद (के रूप में सम्पूर्ण परिवेश प्रतिपादन के खिलाफ) पर कब्जा होगा, आप अपने खुद controller#action
लिए अनुरोध भेजने के लिए अनुमति देता है।
आप टिप्पणी करते हैं, तो मैं तुम्हें बाहर कुछ और अगर आप चाहते हैं आपकी मदद करेंगे!
स्रोत
2014-06-16 08:33:18
मुझे लगता है कि आपके दूसरे संदर्भ में आप क्या चाहते हैं। ** लेकिन रेल 4 ** के लिए लगभग कोई नहीं, क्या आप वाकई दूसरे संदर्भ रेल 4 पर काम नहीं करते हैं? आपने पहले ही क्या किया है? –