質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

0回答

1069閲覧

facebookのサインアップで性別に応じて制限をかけたい

dandandandan

総合スコア8

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2017/06/11 04:47

編集2017/06/11 05:36

###前提・実現したいこと
現在、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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問