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
마지막 하나가 실패합니다. @user2가 아니라 여전히 @user입니다.SessionController # create가 2 명의 사용자와 로그인을 반복 할 때 예상대로 작동하지 않습니다.
편집 : 이렇게하면
,이 사용자가 로그 아웃 세션을 취소하는 공정한 방법이 있나요? 새로운 세션이 될 수 있습니다 전에
class SessionsController < Devise::SessionsController
def create
if warden.authenticated?(:user)
sign_out(current_user)
end
super
end
end