0
@user = FactoryGirl.create(:user)
@user2 = FactoryGirl.create(:user)
@request.env["devise.mapping"] = Devise.mappings[:user]
controller.current_user.should be_nil
post :create, :user => {email: @user.email, password: @user.test_pass}
flash[:alert].should be_nil
controller.should(respond_to(:current_user))
controller.current_user.should_not be_nil
post :create, :user => {email: @user2.email, password: @user2.test_pass}
flash[:alert].should be_nil
controller.should(respond_to(:current_user))
controller.current_user.should == @user2
最後一個失敗的重複登錄時沒有按預期的行爲。它仍然是@user,而不是@ user2。SessionController#創建2個用戶
編輯:
如果我這樣做,這是註銷用戶並清除會話的公平的方式?
class SessionsController < Devise::SessionsController
def create
if warden.authenticated?(:user)
sign_out(current_user)
end
super
end
end