簡體   English   中英

Authlogic_OAuth失敗,在Rails 3中出現錯誤“未初始化的常量UserSession :: OAuth”

[英]Authlogic_OAuth fails with error “uninitialized constant UserSession::OAuth” in Rails 3

我已經將我的應用程序與Authlogic一起使用(即sign_in和sign_up),現在我正嘗試通過Authlogic_OAuth gem添加對OAuth的支持。 我已經完成所有基本設置(我認為),並且在登錄頁面上添加了“使用Twitter登錄”按鈕。 問題是,當我單擊按鈕時,出現此錯誤:

 uninitialized constant UserSession::OAuth

與應用程序跟蹤:

app/models/user_session.rb:17:in `oauth_consumer'
app/controllers/user_sessions_controller.rb:23:in `create'

失敗的函數在我的user_session模型中:

# authlogic_oauth hacks                                                       
# Twitter example                                                             
def self.oauth_consumer
  OAuth::Consumer.new("TOKEN", "SECRET",
      { :site => "http://twitter.com",
        :authorize_url => "http://twitter.com/oauth/authenticate"})
end

我對Rails和ruby還是很陌生,所以我不太了解這種名稱空間沖突來自何處或如何解決。 任何幫助將不勝感激。

好,我知道了。 問題在於OAuth :: Consumer沒有使用authlogic_oauth進行定義。 它實際上是在oauth gem中定義的。 所以我將Gemfile更新為:

gem 'authlogic', '2.1.6'
# set up oauth capabilities. Note: :lib is replaced with :require in rails 3
gem 'authlogic-oauth', '1.0.8', :require => 'authlogic_oauth'
gem 'oauth', '0.4.4'

然后運行:

bundle install

並且,別忘了重新啟動Rails服務器,以便它從Gemfile重新加載gem。

嘗試將OAuth更改為::OAuth 冒號表示您想從班級外部訪問OAuth 它是在您的班級中搜索的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM