【发布时间】:2014-04-26 23:34:54
【问题描述】:
我正在尝试将 omniauth-facebook 集成到我的网站中,但在回调时我不断收到以下错误(或类似错误):
NoMethodError(find_for_facebook_oauth 中的未定义方法 name=' for #<User:0x007f507c6f9158>):
app/models/user.rb:14:inblock'
app/models/user.rb:9:in find_for_facebook_oauth'
app/controllers/users/omniauth_callbacks_controller.rb:4:infacebook'
这是我的 user.rb:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :omniauthable, :omniauth_providers => [:facebook]
def self.find_for_facebook_oauth(auth)
where(auth.slice(:provider, :uid)).first_or_create do |user|
user.provider = auth.provider
user.uid = auth.uid
user.email = auth.info.email
user.password = Devise.friendly_token[0,20]
user.name = auth.info.name
user.image = auth.info.image
end
end
end
不知道为什么它抱怨过程“名称” - 它不应该在寻找一个字段吗?任何帮助表示赞赏。
【问题讨论】:
标签: ruby-on-rails facebook devise