Rspec: действие контроллера не перенаправлено - PullRequest
0 голосов
/ 13 марта 2019

Я установил MoviesController с действиями «Director» и «Index».Вот действие «директор».

действие директора

Я запускаю тесты rspec для действия «директор».

директор теста

Я получаю эту ошибку

изображение ошибки

Ошибка говорит @similMoviesравно nil, но перед этой строкой я проверяю, равно ли @similMovies значение nil, и перенаправляю на действие index (movies_path).Я вручную проверил этот код, и я получаю перенаправление, если @similMovies равен нулю.Я использовал byebug, и он действительно идет в блоке «if @s SimilarMovies == nil».Метод redirect_to даже вызывается, но по какой-то причине он никогда не перенаправляется на действие index.Я знаю это, потому что я поставил byebug в начале действия index.Я очень смущен этим поведением.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 марта 2019

измените условие if для проверки на empty?, а не == nil.Если записи не найдены, вы все равно получаете ActiveRecord::Relation.

if @similarMovies.empty?
  flash[:notice] = "'#{@movie.title}' has no director info"
  redirect_to movies_path and return
end
...