tl; dr проверка работает в браузере, но не работает с rspec.Я не уверен, почему.
ответ: Я пытался назначить массовое назначение user_id, но user_id не было массово назначаемым.Правильно собирал его в контроллере, неправильно в rspec.
Это моя модель листинга.Каждый листинг имеет цену и идентификатор пользователя, связанный с ним.
В моей модели «листинга» у меня есть «цена».
В моей модели «пользователя» у меня есть логический атрибут, называемый «vip ".
Максимальное значение для" цены "зависит от VIP-статуса Пользователя.Если VIP, максимальная цена равна 400. Иначе, максимальная цена равна 200.
Я написал метод «перечисление_потоков», который должен возвращать правильное максимальное значение в зависимости от VIP-статуса пользователя.
Это работает в браузере, но когда я запускаю свои тесты, rspec возвращается с ошибкой:
undefined method `vip?' for nil:NilClass
Я не совсем уверен, где у меня не хватает здесь.Он корректно работает в браузере, но не работает при тестировании с помощью rspec.Вот код:
validates_numericality_of :price, :presence => true, :greater_than => 10, :less_than => :listing_ceiling
def listing_ceiling
if self.user.vip?
400.01
else
200.01
end
end
Есть идеи, почему он потерпит неудачу?