我正在实施一个客户端Web应用程序,使用Omniauth连接到API,遵循here指令
我在/lib/omniauth/strategies/testservice.rb
module OmniAuth:: Strategies
class Testservice < OmniAuth::Strategies::OAuth2
option :name, :testservice
end
end
当我在Rails控制台中调用以下内容时:
require File.expand_path('lib/omniauth/strategies/testservice', Rails.root)
它会失败。
但是,如果我将班级Testservice
的名称缩短为单个词,例如Test
,那么它就可以了。
我怀疑我的类名与Rails命名约定冲突。由于Omniauth gem的一些限制,我无法将类名创建为TestService。
我如何克服这个问题?
答案 0 :(得分:1)
如果发生冲突,请使用完全限定的类名,即包括com.test.Test之类的包名。它将帮助您避免冲突
答案 1 :(得分:0)
添加OmniAuth.config.add_camelization 'testservice', 'TestService
可解决此问题。 See more here