登录后,它会转到正确的 url(具有匹配的子域),但我仍然看到“注册”或“登录”而不是“以 xxx 身份登录”和“注销”,这意味着user_signed_in?
返回 false (current_user未设置)。
这是 application_controller.rb:
private
def after_sign_in_path_for(resource)
logger.info root_url(subdomain: current_user.username)
logger.info user_signed_in?
root_url(subdomain: current_user.username)
end
user_signed_in?
回到true
这里。
它被重定向到的 home_controller.rb:
def show
logger.info user_signed_in?
@user = User.find_by_username!(request.subdomain)
end
而这里user_signed_in?
返回false
.
路线文件:
constraints(Subdomain) do
match '/' => 'home#show', as: :user
end
root :to => 'home#welcome'
正如 Arun 在评论中所说,我发现问题在于 2 个同名 cookie,但一个用于顶级域,另一个用于子域。
有什么方法可以只删除一个 cookie 或根本不设置它?我试过reset_session
了,但它删除了两个cookie。