Я пытаюсь добавить простой маршрут к существующему контроллеру/действию, но, как ни странно, я получаю ошибку 404, хотя маршрут, похоже, существует.Маршрут Rails появляется в маршрутах, но выбрасывает 404
Вот соответствующий раздел моего routes.rb
:
# Wines
scope 'wine' do
get '/', to: 'wines#index', as: 'wine_index'
get '/:collection', to: 'wines#collection_detail', as: 'collection_detail'
get '/:collection/:slug', to: 'wines#wine_detail', as: 'wine_detail'
get '/:style', to: 'wines#style_detail', as: 'style_detail'
end
кажется правильным, потому что вот что я вижу, когда я проверяю:
$ rake routes
=>
Prefix Verb URI Pattern Controller#Action
wine_index GET /wine(.:format) wines#index
collection_detail GET /wine/:collection(.:format) wines#collection_detail
wine_detail GET /wine/:collection/:slug(.:format) wines#wine_detail
style_detail GET /wine/:style(.:format) wines#style_detail
GET|POST /*path(.:format) pages#error404
Я также вижу ожидаемый отклик в консоли:
2.3.1 :003 > app.style_detail_path('semi-dry')
=> "/wine/semi-dry"
Тем не менее, когда я пытаюсь посетить /wine/semi-sweet/
(Se mi-sweet - это стиль «slug», который я использую для поиска в действии). Я получаю ошибку 404.
Что я могу потерять? Я искал десятки подобных вопросов по S.O. и ни одно из решений не относится к моей ситуации.
Что произойдет, если вы удалите слэш? – jvillian
@jvillian Без изменений. Еще 404 – emersonthis
Pls публикует сообщение об ошибке с вашего терминала. – jvillian