Рельсы маршрутизация не работает
У меня есть следующий маршрут, явно определенный в моем rout.rb
map.book_preview_v2 '/books/v2/:id', :controller => 'books', :action => 'show_v2'
Но в логах я вижу следующее сообщение:
2015-09-25 16:49:04 INFO (session: f561ebeab121cd1c8af38e0482f176b8)
method /books/v2/519869.json (user: xxx:669052) params:
{"controller"=>"books", "action"=>"v2", "id"=>"519869",
"format"=>"json"}
ActionController::UnknownAction (No action responded
to v2. Actions: some_method_1, some_method_2,
some_method_3, some_method_4, some_method_5, **show_v2**,
some_method_6, and some_method_7):
Я пропускаю некоторые соглашения по конфигурации? Почему в логах я вижу действие как "v2" вместо "show_v2"?
2 ответа
Решение
ActionController::UnknownAction (На v2 не было никаких действий. Действия: some_method_1, some_method_2, some_method_3, some_method_4, some_method_5, show_v2, some_method_6 и some_method_7):
Почему в логах я вижу действие как "v2" вместо "show_v2"?
Согласно стандартному маршруту Rails 2
map.connect ':controller/:action/:id'
это ожидает v2
как action
но вы определили show_v2
как action
в пути. Смена вашего route
ниже должно работать
map.connect '/books/show_v2/:id', :controller => 'books', :action => 'show_v2'
ОБНОВИТЬ
Это как создавать маршруты для рельсов v2.3.8
Пожалуйста, измените маршруты в.
map.connect '/books/v2/:id', :controller => 'books', :action => 'show_v2'
Я надеюсь, что это может помочь вам.