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などの 1 つの単語に短縮するTestと、機能します。

クラス名が Rails の命名規則と競合していると思われます。Omniauth gem の制約により、クラス名を TestService として作成できません。

どうすればこの問題を克服できますか?

4

2 に答える 2

0

競合が発生した場合は、完全修飾クラス名、つまり com.test.Test のようなパッケージ名を使用します。競合を回避するのに役立ちます

于 2013-06-07T01:34:04.447 に答える