Rails не извеждат грешка при маршрутизиране, когато е въведен невалиден url

В моето приложение rails 2.3.X има потребителски ресурс, който е вложен под много други ресурси и не е изложен директно.

 map.resources :resource1 do |r|
   r.resources :users
 end
 map.resources :resource2 do |r|
   r.resources :users
 end
 # map.resources :users is not mentioned any where.

Когато натисна „/user“ или „/users-any-invalid-url“, той показва грешка при маршрутизиране, но когато натисна „/users“, ме отвежда до индексиране на действието на users_controller, което не е желано. Искам да получа същата грешка при маршрутизиране.

Как да го получа? Благодаря предварително.


person Community    schedule 27.03.2014    source източник


Отговори (1)


Тъй като това е приложение за rails 2, в долната част на route.rb има маршрут по подразбиране

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

Така че, докато имате потребителски контролер, той ще отиде на този контролер. Решението е просто да премахнете тези 2 реда. Премахването на тези 2 реда също ви предпазва от различни нежелани заявки.

person jvnill    schedule 27.03.2014