0

目前,当您以用户身份登录时,无论从哪里登录,您都会被带到您的主页。我想检查 url 中的参数并根据该参数进行重定向。

这是代码:

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,它就可以了)。

我错过了什么?

4

1 回答 1

0

如果您未登录,主页是否会将您重定向到登录表单?

Devise 将存储您尝试登录时所在的页面,并在您登录时重定向到该页面。

这将优先于 after_sign_in_path_for,因此如果您要进入 Home page => Auto-redirect to Login => log in,则 after_sign_in_path_for 的返回值无关紧要。

如果是这种情况,您可以使用stored_location_for(设计和stored_location_for:您如何存储返回位置?)来改变您要去的地方。

于 2013-04-12T18:19:41.120 回答