2015-09-26 4 views
1

я следующий маршрут явно определенный в моем routes.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»?

+0

Для записи, какую версию рельсов вы используете? –

+0

Я использую рельсы 2. – riship89

ответ

1

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' 
+0

Это имеет смысл. Любой другой способ я могу сохранить свой url как/books/v2 /: id и мое имя метода как show_v2? – riship89

+0

@ riship89 Подождите. можете ли вы обновить свой вопрос с помощью полного 'routes.rb'? – Pavan

0

UPDATE

Это как создать routes для рельсов v2.3.8

Пожалуйста, пересмотрела маршруты в.

map.connect '/books/v2/:id', :controller => 'books', :action => 'show_v2' 

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

+0

Какова теория? – riship89

+1

Извините, я не показывал теорию и документацию. Я обновил свой ответ. В этой документации вы можете найти подробное описание. @eirikir: Спасибо за ваши комментарии. Я буду осторожен, чтобы написать ответ. – akbarbin

+0

Спасибо за помощь, но не работает. Это противоречит правилам rails и вызывается контроллер => «books» action => «v2». – riship89