为什么立即设计sign_in方法没有效果?

时间:2019-02-06 05:40:13

标签: ruby-on-rails ruby session devise

我尝试使用sign_in(user)

以其他用户身份登录
(byebug) user = User.find(2)
# return me the record of user with ID=2
(byebug) current_user.id
1
(byebug) sign_in(user)
# return me the record of user with ID=2
(byebug) current_user.id
1 # I expect this to be 2!!

谁能解释为什么?

注意:奇怪的是,我发现了一个叫做session["warden.user.user.key"].first.first的新东西,它可以满足我的要求,但这似乎不是正确而干净的方法。

1 个答案:

答案 0 :(得分:0)

sign_in方法中的

Devise source code line 50说:

  

#不执行任何操作。用户已经登录,我们不强制执行。

所以我认为原因是因为如果我们已经以用户身份登录,则Devise不会登录新用户(除非我们强制执行此操作)。