Problem
You would like to add a routing rspec test in your rails application that tests for a nested route.
So while you have something like the following in your config/routes.rb file:
|
namespace :admin do resources :users do resources :audits, only: [:index] end end |
you want to add the following test for your route:
|
expect(get: '/admin/users/:user_id/audits').to route_to(controller: 'admin/audits', action: 'index') |
but you are getting an error like the following:
|
The recognized options <{"controller"=>"admin/audits", "action"=>"index", "user_id"=>":user_id"}> did not match <{"controller"=>"admin/audits", "action"=>"index"}>, difference:. --- expected +++ actual @@ -1 +1 @@ -{"controller"=>"admin/audits", "action"=>"index"} +{"controller"=>"admin/audits", "action"=>"index", "user_id"=>":user_id"} |
Solution
You will need to change your rspec to the following using any number for the user_id:
|
expect(get: '/admin/users/42/audits').to route_to(controller: 'admin/audits', action: 'index', user_id: '42') |
Solution adapted from here