当url路径与控制器路径不匹配时,Rails控制器测试

时间:2014-04-20 15:16:57

标签: ruby-on-rails ruby-on-rails-4 controller routing

我的路线中有这个.rb:

get "user/:id" => "game_week#show_all"

控制器保存在app / controllers / game_week_controller.rb。

现在,我正试图在game_week_controller_test.rb中调用此方法:

test "call rejected if user if user doesn't exist" do
  post :show_all, user_id: 10
  assert_response :not_found
end

这引发了错误:

ActionController::UrlGenerationError: No route matches {:user_id=>"10", :controller=>"game_week", :action=>"show_all"}

我不确切知道这些是如何形成的。它不能寻找“game_week#show_all”。所以它必须寻找/ game_week / show_all作为路线。我怎样才能确保从game_week_controller_test.rb发布到user /:id?

1 个答案:

答案 0 :(得分:2)

您已定义了get路线,但您的规范已调出post

使用以下内容:

get :show_all, id: 10

另请注意,参数为id而不是user_id