我有以下方法:
def track(user)
user.last_login_from_ip_address = request.env['REMOTE_ADDR']
user.last_login_at = Time.zone.now
user
end
在我的控制器中,我这样做
track(user).save!
我还进行了以下测试,以确保正确跟踪用户:
before do
@user = create(:user, password: 'P@ssw0rd1', email: 'right@email.com', activation_state: 'active')
@user.activate!
end
it 'should change the last login time' do
post :authenticate, params
expect(@user.reload.last_login_at).not_to be_nil
end
直到现在,它完美地过去了
现在,我必须更改application.rb
中的时区,如下所示:
config.active_record.default_timezone = 'Europe/Berlin'
我添加此行后,此测试现在失败了。没有last_login_at
了
我发现这种行为非常奇怪,而且我不知道是什么导致它