我想整合omniauth-facebook到我的網站,但我不斷收到以下err(或類似的東西)回調:Devise/Facebook的回調NoMethodError(未定義的方法`name ='爲#<用戶:0x007
NoMethodError(未定義的方法name=' for #<User:0x007f507c6f9158>): app/models/user.rb:14:in
塊find_for_facebook_oauth' 應用程序/模型/ user.rb:9:find_for_facebook_oauth' app/controllers/users/omniauth_callbacks_controller.rb:4:in
Facebook的
這裏是我的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
不知道爲什麼它是抱怨ABO ut程序的「名稱」 - 它不應該在尋找一個領域?任何幫助讚賞。
我添加的名稱字段遷移創建於
users
表中增加name
場遷移文件,但我仍然得到相同的錯誤。我做一個heroku運行更多的數據庫/ schema.rb和名稱字段不顯示。我做heroku pg:重置DATABASE和一個heroku運行rake db:migrate併產生一個錯誤 - PG :: DuplicateColumn:ERROR:關係「users」的列「name」已經存在。 – user3570192在添加數據庫中的字段後重新啓動服務器,然後檢查是否出現錯誤。讓我知道。 –
我做了一個heroku重新啓動,看起來像它仍然不存在 - 當我嘗試Facebook鏈接(用戶/ auth/facebook)時,它將我路由到sign_in :( – user3570192