Я работаю над проектом RoR с узором и огурцом, и у меня возникла интересная проблема, которую я не совсем понимаю. Я пишу интеграционные тесты (шаги огурца), чтобы проверить разработку и убедиться, что в будущем я не буду этого делать, и я обнаружил какое-то странное поведение:Невозможно использовать методы переменных экземпляра интеграции Rails?
В рамках теста следующий код не работает:
@user = FactoryGirl.create(:user)
@user.lock_access!
expect(@user.access_locked?).to be_true
Вместо этого он возвращает false. Тем не менее, это действительно работает:
expect(User.find(@user.id).access_locked?).to be_true
Так почему переменная экземпляра не имеет правильную информацию, но когда я тяну из базы данных, это правильно. Я предполагаю, что это действительно правильное поведение с ActiveRecord, но я не совсем понимаю, почему.
Может кто-нибудь объяснить, почему это так? И как очистить этот код немного, если есть способ или что-то доступное для работы @user
?