new_with_session
Omniauth + Devise ( https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview )で必要に応じて呼び出されるユーザー モデル (devise と確認可能を使用する) にメソッドがあります。
def self.new_with_session(params, session)
super.tap do |user|
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"] || session["devise.google_data"] && session["devise.google_data"]["extra"]["raw_info"]
user.email = data["email"]
end
end
end
ユーザーは Google または Facebook のいずれかを使用してサインインすることが許可されており、次の行を使用して権利を保存していますuser.email
。
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"] || session["devise.google_data"] && session["devise.google_data"]["extra"]["raw_info"]
しかし、私はそれが正しい方法だとは思わないので...
- 演算子
user.email
を使用するよりも良いビルド方法を知っていますか?||
- ユーザー名など、Google/Facebook からさらにデータを保存したい場合は、カスタムに追加する必要があります
new_with_session
か? もしそうなら、なぜですか?