我的路线中有这个.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?
答案 0 :(得分:2)
您已定义了get
路线,但您的规范已调出post
:
使用以下内容:
get :show_all, id: 10
另请注意,参数为id
而不是user_id
。