Omniauth を使用して、ユーザーに Facebook アカウントでサインアップさせています。彼らが最初に認証リンクをクリックすると、アプリケーションのアカウントをまだ持っていない限り、追加情報を入力するためのサインアップ ページに誘導します。
セッションコントローラー
def create_facebook
#make an environment variable
auth = request.env['omniauth.auth']
if User.find_by_provider_and_uid(auth["provider"], auth["uid"])
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"])
session[:user_id] = user.id
redirect_to lessons_path, flash[:notice] => "Signed in!"
else
#go to signup page to get additional info
redirect_to new_user_path(:auth => auth) #problem
end
end
この場合、URL のパラメーターを使用して auth ハッシュ全体を渡しUser.create_with_omniauth(auth)
ますUsers#new
。私はそれを避けるべきですか?他の選択肢は何ですか?