Rspec:控制器操作未重新路由

时间:2019-03-13 01:24:26

标签: ruby-on-rails rspec-rails

我已经使用“导演”和“索引”动作设置了MoviesController。这是“导演”动作。

director action

我正在对“导演”操作运行rspec测试。

director test

我收到此错误

error image

错误是说@similarMovies为nil,但在那行之前,我测试了@similarMovies是否为nil并重定向到索引动作(movies_path)。我已经手动测试了此代码,并且如果@similarMovies为nil,我的确会被重定向。我使用过byebug,它的确确实存在于“ if @similarMovies == nil”块中。 redirect_to方法甚至被调用,但是由于某种原因,它实际上从未重定向到index操作。我知道这一点是因为我也将byebug放在了索引操作的开头。我对此行为感到非常困惑。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

更改if条件以检查empty?而不是== nil。如果未找到任何记录,您仍然会收到ActiveRecord::Relation

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