2

私は SpreeSocial のドキュメントhereを読んでいます。構成からプロバイダーを削除する方法がわかりません。最新のプロバイダーをリストから外そうとしましたが、うまくいきません。

  SpreeSocial::OAUTH_PROVIDERS.pop

「LinkedIn でサインイン」をビューに表示させることはできましたが、「Google+ でサインイン」リンクを削除したいと考えています。

SpreeSocial::OAUTH_PROVIDERS << ['LinkedIn', 'linkedin', 'true']
SpreeSocial.init_provider('linkedin')

.class_eval を使用して SpreeSocial のクラスを開きたい場合 (これは、利用可能なプロバイダーを編集するのに役立つと思います)、これらのファイルをどこに配置して自動ロードできるようにするか、またはどこに構成する必要がありますか? Spree/Rails を初めて使用するため、構成と初期化子にあまり詳しくありません。助けてくれてありがとう!

ここでSpreeSocial モジュールで .class_eval を呼び出せるようにしたい

4

1 に答える 1

0

SpreeSocial::OAUTH_PROVIDERS は、コードがアプリケーションを初期化するときに再定義されるため、pop を使用するだけでは十分ではありません。SpreeSocial はクラスではなくモジュールであるため、次のいずれかを行う必要があります。

1) SpreeSocial::OAUTH_PROVIDERS を再定義するには、class_eval ではなく module_eval を使用します。

SpreeSocial.module_eval do OAUTH_PROVIDERS = [ %w(Facebook facebook true), %w(Twitter twitter false), %w(Github github false), %w(Amazon amazon false) ] end

また

2) Google を返さないアクティブな認証方法を決定する方法をオーバーライドできます: https://github.com/spree-contrib/spree_social/blob/master/app/models/spree/authentication_method.rb#L4-L12

于 2015-05-18T14:20:29.370 に答える