0

私はこのチュートリアルの後に続きました:http://emumair.wordpress.com/2011/03/17/social-network-authentication-with-omniauth-and-authlogic/。私はそれをすべてを歩いていると私はこのエラーを取得しています:アプリ/コントローラ/ authentications_controller.rb:21: 'を作成 `で:コントローラに障害が発生し認証方式のauthlogicで問題が発生したomniauth

undefined method `authentications' for #User<User:0x54cd8d8> 

その

user.authentications.build(:provider => omniauth['provider'], :uid => omniauth['uid']) 

認証のためにユーザーモデルに関係を追加する必要がありますか?

は私のユーザモデルは現在、次のようになります。

class User < ActiveRecord::Base 
acts_as_authentic 

def apply_omniauth(omniauth) 
self.email = omniauth['user_info']['email'] 

# Update user info fetching from social network 
case omniauth['provider'] 
when 'facebook' 
# fetch extra user info from facebook 
when 'twitter' 
# fetch extra user info from twitter 
end 
end 
end 

マイauthentication.rbファイルは次のとおりです。

class Authentication < ActiveRecord::Base 
belongs_to :user 
validates :user_id, :uid, :provider, :presence => true 
validates_uniqueness_of :uid, :scope => :provider 
end 
+0

認証テーブルを作成するために実行する必要がある移行はありますか? –

+0

うん、私はチュートリアルに示す移行を作成し、それを実行しました。 – turbo2oh

答えて

0

あなたも omniauthことに注意して、この

class User < ActiveRecord::Base 
    has_many :authentications 

を追加する必要があります['user_info'] ['email'] をに変更しましたomniauth ['info'] ['email']

関連する問題