ruby - Testing conditions set by around_action in Rails -


एक रेल एप्लिकेशन में ApplicationController में around_action के माध्यम से वर्तमान लोकेल सेट है कॉलबैक यह केवल एक before_action का उपयोग करने की तुलना में एक क्लीनर समाधान है, जो अनुरोध के आसपास विशिष्ट स्थान को लटकाएगा।

  class ApplicationController & lt ; ActionController :: बेस के चारों ओर_ऑक्शन: with_locale def with_locale I18n.with_locale (find_current_locale) {yield} समाप्ति समाप्ति  

चूंकि अनुरोध को पूरा करने के बाद मौजूदा लोकेशन रीसेट हो जाने के बाद अनुरोध विशिष्ट नहीं है एक परीक्षण में लोकेल निम्नलिखित कोड के साथ before_filter पास होगा:

  यह 'लोकल से अनुरोध' प्राप्त करता है: क्रिया, स्थान: लोकेल I18n.locale.should == लोकेल एंड  

नियंत्रक में कुछ अतिरिक्त तर्क इंजेक्शन के बिना मैं एक around_filter के साथ काम करने के लिए इस परीक्षण को लागू करने का एक तरीका नहीं सोच सकता । क्या आरएसपीसी के साथ एक सरल तरीका है?

अगर I18n.with_locale उचित पैरामीटर के साथ बुलाया गया है।

  यह 'अनुरोध से लोकेल सेट' अनुमति देता है (I18n)। प्राप्त करने के लिए (: with_locale) प्राप्त करें: क्रिया, लोकेल: लोकेल की अपेक्षा (I18n)। (: With_locale) .with (लोकेल) समाप्ति  

Comments