![](/img/trans.png)
[英]Issue with accepts_nested_attributes_for while using authlogic_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.