###前提・実現したいこと
現在、omniauth facebookというgemを使用して、以下のようにfacebookのサインアップを以下のように実装しております。
その上で取得した性別が女性の場合のみ(女性という文字列を含んでいた場合)サインアップを許可し、そうでない場合はエラーメッセージを吐き出したいと考えています。
その場合、 self.create_user_from_facebook内にどのように条件分岐を書き足せばよいのでしょうか。
###該当のソースコード
sessions controller
ruby
1 def create 2 auth = request.env["omniauth.auth"] 3 session[:omniauth] = auth 4 user = User.sign_in_from_facebook(auth) 5 session[:user_id] = user.id 6 redirect_to root_url, notice: "Signed In" 7 end 8
User model
ruby
1 2 def self.sign_in_from_facebook(auth) 3 find_by(provider: auth['provider'], uid: auth['uid'] ) || create_user_from_facebook(auth) 4 end 5 6 def self.create_user_from_facebook(auth) 7 create( 8 9 avatar: process_uri(auth['info']['image'] + "?width=9999"), 10 email: auth['info']['email'], 11 provider: auth['provider'], 12 uid: auth['uid'], 13 name: auth['info']['name'], 14 token: auth['credentials']['token'], 15 gender: auth['extra']['raw_info']['gender'], 16 location: auth['info']['location'], 17 bio: auth['extra']['raw_info']['bio'] 18 19 20 ) 21 end 22
あなたの回答
tips
プレビュー