错误:安装omniauth-twitter时未定义的局部变量或方法`resource_class'

时间:2013-07-05 05:46:37

标签: ruby-on-rails ruby facebook login omniauth

我正在尝试使用facebook / twitter登录,并关注this railscast

我已将以下内容添加到我的config / initializers / devise.rb中(我在其中输入了我的消费者密钥和Twitter提供的消费者密钥)。

config.omniauth :twitter, ENV["TWITTER_CONSUMER_KEY"], ENV["TWITTER_CONSUMER_SECRET"]

在我的用户模型中添加“:omniauthable”之后,以下产生此错误“未定义的局部变量或方法`resource_class'用于#<#:0x007febf67af938>”

- if devise_mapping.omniauthable?
  - resource_class.omniauth_providers.each do |provider|

2 个答案:

答案 0 :(得分:13)

我通过删除“ENV []”括号解决了这个问题:

config.omniauth :twitter, 'TWITTER_CONSUMER_KEY', 'TWITTER_CONSUMER_SECRET'

并在我的application_helper.rb中定义resource_class

def resource_class
  devise_mapping.to
end

答案 1 :(得分:-3)

如果你运行这个'程序',你会得到同样的错误:

resource_class.omniauth_providers.each do |provider|
end

你必须在某处定义resource_class。你是Railscasts的垃圾邮件发送者吗?对于需要花钱的东西提供链接并没有什么帮助。