2011-05-25 15 views
10

मुझे लगता है कि रेल 3.1 त्रुटियों को उठाए जाने के तरीके को बदल रहा है। क्या कोई इस की सहायता या पुष्टि कर सकता है? मैं रेल 3.1.0.rc1रेल 3.1 त्रुटि

unless config.consider_all_requests_local 
    rescue_from Exception, :with => :render_error 
    rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found 
    rescue_from ActionController::RoutingError, :with => :render_not_found 
    rescue_from ActionController::UnknownController, :with => :render_not_found 
    rescue_from ActionController::UnknownAction, :with => :render_not_found 
end 

^^ यह कस्टम काम नहीं कर रहा है।

config.consider_all_requests_local  = true 

यह डिफ़ॉल्ट रूप से मेरे विकास पर्यावरण में है। मुझे लगता है कि रेल 3.1 "action_controller" को हटा देता है लेकिन मैं इसे कहीं भी पुष्टि नहीं कर सकता।

धन्यवाद!

+0

किस तरह की त्रुटियां? सामान्य रूप से बस अपवाद? – Matchu

+0

यह उपयोगी होगा अगर आप कुछ कोड पोस्ट कर सकते हैं और समझा सकते हैं कि * विशेष रूप से * आप क्या अनपेक्षित व्यवहार देख रहे हैं। – molf

+0

आपको नीचे दिए गए उत्तर को स्वीकार करना चाहिए। यह काम करता हैं! –

उत्तर

19

मुझे लगता है कि आपके आवेदन नियंत्रक में निम्न कोड दिखाई देता है?

unless config.consider_all_requests_local 
    rescue_from Exception, :with => :render_error 
    rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found 
    rescue_from ActionController::RoutingError, :with => :render_not_found 
    rescue_from ActionController::UnknownController, :with => :render_not_found 
    rescue_from ActionController::UnknownAction, :with => :render_not_found 
end 

यदि हां, तो इस लाइन की जगह की कोशिश: इस लाइन के साथ

unless config.consider_all_requests_local 

(पूर्व रेल 3 मुझे लगता है कि):

unless ActionController::Base.consider_all_requests_local 

या इस (पोस्ट रेल 3):

unless Rails.application.config.consider_all_requests_local 
9

मुझे विश्वास नहीं है कि मैट का समाधान रूटिंग को पकड़ लेगा और रेल 3.0/3.1 में rrors।

प्रयास डाल अपने application.rb में निम्नलिखित:

# 404 catch all route 
config.after_initialize do |app| 
    app.routes.append{ match '*a', :to => 'application#render_not_found' } unless config.consider_all_requests_local 
end 

देखें: https://github.com/rails/rails/issues/671#issuecomment-1780159

मेरे लिए अच्छी तरह से काम किया!

+0

इसे जोड़ने के लिए धन्यवाद! यहां मेरा मूल उत्तर पोस्ट करने के कुछ सप्ताह बाद इसके बारे में जानें। :) –

+0

सामान्य चीजों में जो इक्विव होने का अंत होता है। अगर! Rails.env.production खतरनाक हैं ... – Kevin

+0

@ केविन - यह कहां होता है? क्या यह 'consider_all_request_local' के उपयोग के संदर्भ में है? यदि ऐसा है, तो मुझे नहीं लगता कि आप एक वैध तर्क बनाते हैं, क्योंकि यह प्रति-पर्यावरण आधार पर परिभाषित एक सेटिंग है। प्रति-वातावरण कॉन्फ़िगर की गई कई सेटिंग्स हैं, और यह केवल कई में से एक है। –

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