Ruby on rails 使用Shopify API构建Rails3应用程序。将会话筛选器放置在何处?
我正在开发一个Rails应用程序,它通过Shopify_应用程序Gem使用Shopify API。长话短说,为了调用Shopify API,以下代码必须出现在调用类的控制器中Ruby on rails 使用Shopify API构建Rails3应用程序。将会话筛选器放置在何处?,ruby-on-rails,session,controller,shopify,Ruby On Rails,Session,Controller,Shopify,我正在开发一个Rails应用程序,它通过Shopify_应用程序Gem使用Shopify API。长话短说,为了调用Shopify API,以下代码必须出现在调用类的控制器中 around_filter :shopify_session, :except => 'welcome' def welcome current_host = "#{request.host}#{':' + request.port.to_s if request.port != 80}" @
around_filter :shopify_session, :except => 'welcome'
def welcome
current_host = "#{request.host}#{':' + request.port.to_s if request.port != 80}"
@callback_url = "http://#{current_host}/login/finalize"
end
现在,由于我的应用程序中有多个控制器,似乎不适合在每个控制器中放置上述代码。我试图从每个控制器中删除代码,并将其单独放在应用程序控制器中,但没有成功。对于我为什么会遇到这些问题的任何指导,我将不胜感激。作为奖励,如果您能告诉我如何让我的控制器测试在RSpec中工作,而不评论控制器中的上述代码,我将特别感激
感谢您的时间在您定义将过滤器应用于该控制器的哪些方法时,在每个控制器中定义around过滤器是有意义的。应用程序控制器对它下面的类一无所知,因此将定义放在那里是没有意义的
我建议设置或类似于使用测试来伪造API发出的任何外部调用。要避免shopify_会话方法将您重定向到登录屏幕,请确保在测试设置中将会话[:shopify]设置为的实例。在定义该控制器的哪些方法应用筛选器时,在每个控制器中定义环绕筛选器是有意义的。应用程序控制器对它下面的类一无所知,因此将定义放在那里是没有意义的
我建议设置或类似于使用测试来伪造API发出的任何外部调用。要避免shopify_会话方法将您重定向到登录屏幕,请确保在测试设置中将会话[:shopify]设置为的实例。感谢您的直接来源的洞察力。感谢您的直接来源的洞察力。