Это бросило меня за штопор.
У меня есть провальный тест, который должен пройти. Я получаю сообщение об отсутствии маршрута ActionController::UrlGenerationError: No route matches
со строки get :Show, params: {id: @team}
. Все остальное в моем приложении подтверждает, что определен маршрут ~/teams/:id
от confing/routes.rb
до сервера разработки.
Мой код:
Неудачный тест
test "should get show action when logged in" do
log_in_as(@other_user)
get :Show, params: {id: @team}
assert_response :success
assert_template 'teams/show'
end
Error
ActionController::UrlGenerationError: No route matches {:action=>"Show", :controller=>"teams", :id=>#<Team id: 1049939034, teamname: "Blue panthers" ..... >}
конфиг / routes.rb
resources :teams, only: [:show, :index]
Рейк-рейты
team GET /teams/:id(.:format) teams#show
Рельсовая консоль
2.4.2 :011 > app.team_path(2)
=> "/teams/2"
Журнал сервера разработки
Started GET "/teams/4" for 127.0.0.1 at 2018-04-30 21:30:51 -0400
Processing by TeamsController#show as HTML
Parameters: {"id"=>"4"}
User Load (23.1ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
Team Load (16.4ms) SELECT `teams`.* FROM `teams` WHERE `teams`.`id` = 4 LIMIT 1
Rendering teams/show.html.erb within layouts/application
Completed 200 OK in 474ms (Views: 398.0ms | ActiveRecord: 48.6ms)
У меня нет идей, как отладить эту ошибку.