2010-07-02 5 views
11

मुझे नीचे दिए गए प्रारूप के आधार पर फ़िल्टर से पहले छोड़ने का एक तरीका मिला, लेकिन मुझे आश्चर्य है कि इस अव्यवस्था की चीजों के बाद से बेहतर तरीका है और नहीं है ' टी बहुत शुष्क है।रेल में json/xml अनुरोधों के लिए फिल्टर से पहले कैसे छोड़ा जाए

before_filter do |controller| 
    :current_cart unless controller.request.format.js? 
end 

मैं ऐसा नहीं करते हैं, तो json अनुरोध क्योंकि current_cart विधि, और अन्य तरीकों, बातें केवल एचटीएमएल के लिए करना असफल।

before_filter :current_cart, :unless => :format_js? 

def format_js? 
    request.format.js? 
end 

आशा इस मदद करता है:

+0

यह केवल रेल 4+ में काम करता है यदि आप 'current_cart' को विधि में सीधे कॉल में बदलते हैं:' current_cart'। ब्लॉक सिंटैक्स कुछ मामलों में बेहतर है, इसलिए मैंने सोचा कि मैं बताऊंगा कि आपके उदाहरण का सही तरीके से उपयोग कैसे करें। –

उत्तर

20

आप इसे इस तरह से कर सकता है।

+1

वास्तव में सहायक! मुझे लगता है कि 'format_json?' हालांकि विधि के लिए एक बेहतर नाम है। – benastan

+0

मैंने इसे 'format_js' में बदल दिया है, मैं सहमत हूं कि दूसरा नाम उतना अच्छा नहीं था लेकिन जेएस! = जेसन। विचार के लिए धन्यवाद! –

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