sign_in_and_redirect如何设计工作?

时间:2015-09-09 05:56:34

标签: ruby-on-rails facebook devise omniauth

if @user.persisted?
      sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
      set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
end

此方法存在于facebook omniauth callbacks controller中。我面临的问题是我没有从Facebook获取用户的电话号码,因此@user不是有效对象(我有一个validation)。所以,我想将用户重定向到另一个我可以要求输入电话号码的页面。

如何修改sign_in_and_redirect @user以将我重定向到该页面而不是根网址。

1 个答案:

答案 0 :(得分:6)

Sign_in_and_redirect方法uses after_sign_in_path_for method to determine where to redirect the user after sign in

您可以easily customize your after_sign_in_path_for method检查手机是否存在,并拨打超级或重定向到用户可以输入其电话号码的页面。