У меня есть простой контроллер, который должен отвечать только на действия show и index. Чтобы затянуть мои маршруты, я добавил условие только для обработки: show and: index. Проблема в том, что это заставляет действие show реагировать на pro_infos/new, где он предположительно видит «новый» как: id param.Rails 4 маршрутизации исключая: новые разрывы срабатываний rspec тесты маршрутизации
Не настоящая проблема сама по себе, но она прерывает мой тест маршрутизации rspec для новых, чтобы они не были маршрутизированы.
Из маршрутов:
resources :masters, only: [:show, :index, :new, :create] do
resources :pro_infos, only: [:show, :index]
end
От RSpec маршрутизации
it "routes to #new" do
expect(:get => "masters/2/pro_infos/new").not_to be_routable
end
rake routes |grep pro_infos
возвращается:
master_pro_infos GET /masters/:master_id/pro_infos(.:format) pro_infos#index
master_pro_info GET /masters/:master_id/pro_infos/:id(.:format) pro_infos#show
Я понимаю, что я могу просто вырезать routi ng для нового действия, но для обеспечения согласованности в моем приложении я бы предпочел проверить, не маршрутизируя его маршрутизацию. Каков правильный/наилучший подход к этому?
Что делать, если с помощью тщеславия URL-адреса, то есть '/ мастеров/1/pro_infos/тщеславие-url', где вы могли бы иметь алфавитные символы, прошедшие через значение «id»? –