Рельсы маршрутизация не работает

У меня есть следующий маршрут, явно определенный в моем 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'

Я надеюсь, что это может помочь вам.

Другие вопросы по тегам