1

我正在实现一个使用 Omniauth 连接到 API 的客户端 Web 应用程序,按照此处的说明进行操作

我在嵌套模块中定义了一个类/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。

我该如何克服这个问题?

4

2 回答 2

0

如果发生冲突,请使用完全限定的类名,即连同包名类似 com.test.Test 。它将帮助您避免冲突

于 2013-06-07T01:34:04.447 回答
0

添加OmniAuth.config.add_camelization 'testservice', 'TestService解决了这个问题。在这里查看更多

于 2013-06-07T02:08:16.603 回答