繁体   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