目前,当您以用户身份登录时,无论身在何处,都会被带到您的主页。我想检查网址中的参数并根据该参数重定向。
以下是代码:
def after_sign_in_path_for(resource)
if params['redirect'] == 'SomeParameter'
return special_url
else
return home_url
end
end
如果我使用没有参数的常规登录表单,我会被带到home_url。当我尝试去/ user / login?redirect = SomeParameter时,我仍然被带到home_url。顺便说一下,两条路线都是有效的(如果我只测试special_url,它就可以正常工作)。
我错过了什么?
答案 0 :(得分:0)
如果您还没有登录,主页是否会将您重定向到登录表单?
Devise将存储您尝试登录时所在的页面,并在您登录时重定向到该页面。
这将优先于after_sign_in_path_for,所以如果你要去主页=>自动重定向到登录=> 登录,然后after_sign_in_path_for的返回值并不重要。
如果是这种情况,您可以使用stored_location_for(Devise and stored_location_for: how do you store the return location?)来改变您的去向。