2

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

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

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

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

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

2 回答 2

13

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

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

并在我的 application_helper.rb 中定义 resource_class

def resource_class
  devise_mapping.to
end
于 2013-08-07T00:42:26.247 回答
-3

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

resource_class.omniauth_providers.each do |provider|
end

您必须在某处定义 resource_class 。您是 Railscasts 的垃圾邮件发送者吗?为需要花钱才能看到的东西提供链接并没有真正的帮助。

于 2013-07-05T05:55:32.823 回答