Пользовательский метод контроллера Rails3 не маршрутизируется: работает в Rails2 - PullRequest
3 голосов
/ 16 декабря 2010

Я использовал Rails 2.3.8 для проекта, над которым я работал, но только что перенес проект на Rails 3.0.3.После устранения основных ошибок у меня возникла проблема с пользовательским методом контроллера.

В gallery_controller у меня был пользовательский метод с именем extract.В рельсах 2.3.8 это работало нормально, без дополнительной настройки.Я мог бы перейти в / galleries / extract /: id и он сделал бы то, что хотел.

Теперь этот код ломает приложение, когда я пытаюсь создать ссылку на него с исходным кодом в форме:

<%= link_to "Add photos to gallery from: ",
        :action => 'extract', :id => @gallery.id %>

и ошибка, которую я получаю, когда пытаюсь перейти на страницу с таким кодом:

No route matches {:action=>"extract", :controller=>"galleries", :id=>2}

Посмотрев на route.rb, я подозреваючто это не удается, потому что

match ':controller(/:action(/:id(.:format)))'

не включен, и фактически устарел.

Запуск граблей |grep 'extract' ничего не дает мне.

Так как мне это исправить?

1 Ответ

4 голосов
/ 16 декабря 2010

См. Руководство по маршрутизации: добавление дополнительных действий RESTful .Вам нужно сообщить маршрутам вашего приложения об операции извлечения, примерно так:

resources :gallery do
  get 'extract', :on => :member
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...