###前提・実現したいこと
User認証機能を作成していて、omniauth
を使って各Providerからデータを取得してくるということをしています。
現状ではAPIからデータを取得するところまで出来ています。
実現したいこととしては、APIからデータを取得して、そのデータ保存せず保持したままnewメソッド
までデータを保持してrenderしたいです。
処理の流れは以下のような感じです。
-
- user.rbの
from_omniauth_callback(auth)
でデータを受け取る。
- user.rbの
Ruby
1# model/user.rb 2def from_omniauth_callback(auth) 3 # インスタンスを作成 4 user = User.new 5 binding.pry 6 user.uid = auth[:uid] 7 user.email = auth[:info][:email] 8 user.nickname = auth[:info][:name] 9 user.first_name = auth[:info][:first_name] 10 user.last_name = auth[:info][:last_name] 11 user.status = statuses[:unconfirm] 12 binding.pry 13 # コントローラーに値を渡したい 14 return user 15 end
-
- users_controllerで処理
Ruby
1# controller/users_controller 2def omniauth 3 # @userにモデルからのuser変数を渡したい 4 @user = User.from_omniauth_callback(user) 5 # @userのデータを保持したままnewにrenderしたい 6 render :new 7end
なぜこのような処理がしたいかというと、Facebookログインはあくまで入力の補助という役割で、新規登録のビューに保持したデータを持ってきて、足りない必須項目をユーザーに入力してもらいたいと考えているからです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。