私はRailsの初心者です。
だから...私のRailsアプリでは、OmniAuth Facebook統合があり、いくつかのフィールド、例えば名、姓、場所をデータベースに追加したいと考えています。
このwikiをフォローしました。ログインは簡単ですが、追加のフィールド (名、姓、場所) はありません。
そこで、これをconfig/initializers/devise.rb に追加しました:
require 'omniauth-facebook'
config.omniauth :facebook, '123456...', '123456...',
scope: 'first_name, last_name, location',
stategy_class: OmniAuth::Strategies::Facebook
したがって、私が正しければ、上記はこれらの追加フィールドを要求します。
ここで、モデル user.rb に、要求された値をデータベースに渡す 3 行を追加します。
def self.find_for_facebook_omniauth(omniauth, signed_in_resource=nil)
basic = {
provider: omniauth.provider,
uid: omniauth.uid,
}
User.where(basic).first || User.create(basic.merge(
firstname: omniauth.info.firstname, # these are the
lastname: omniauth.info.lastname, # lines I'm not
location: omniauth.info.location, # sure of
email: omniauth.info.email,
password: Devise.friendly_token[0,20],
))
end