Переименование помощников пути в Rails 3 маршрутизации - PullRequest
3 голосов
/ 19 ноября 2010

У меня есть проектный контроллер / модель.Вместо того, чтобы перечислять проекты на странице #index, я показываю список раскрывающихся списков, который отправляет проекты # select, который находит нужный проект (я убедился, что для каждой комбинации параметров может быть только 1) и пересылаетПользователь на странице #show для этого проекта.

Так что для моих маршрутов я делаю это ...

resources :projects, :only => [:index, :show] do
  collection do
    get 'select'
  end
end

И это нормально, но вспомогательный метод для #select - это "select_projects", что понятно, но в моем случае я действительно хочу «select_project».И я действительно не хочу, чтобы псевдоним это в другом файле.Нет проблем, я могу использовать: как ...

resources :projects, :only => [:index, :show] do
  collection do
    get 'select', :as => 'select_project'
  end
end

Но теперь мой помощник 'select_project_projects'.Поэтому я немного обманываю (все же лучше, чем псевдонимы в другом файле) ...

resources :projects, :only => [:index, :show]
match '/projects/select', :to => 'projects#select', :as => 'select_project'

Похоже, это может сработать, но это не так, потому что / project / select фактически соответствует маршруту для проекта#шоу'.Изменение порядка строк делает хитрость.

match '/projects/select', :to => 'projects#select', :as => 'select_project'
resources :projects, :only => [:index, :show]

Но есть ли более элегантный способ справиться с этим?Я понимаю, что это пограничный OCD, но я хотел бы иметь возможность полностью контролировать имя маршрута в блоке ресурсов.

Ответы [ 3 ]

2 голосов
/ 19 января 2011

использовать ресурс вместо ресурсов

1 голос
/ 19 ноября 2010

Вы, вероятно, не хотите, чтобы это был маршрут сбора, но маршрут участника:

resources :projects, :only => [:index, :show] do
  member do
    get 'select'
  end
end

Таким образом, у вас будет помощник select_project.

0 голосов
/ 12 марта 2017

Для тех, кто хочет переименовать сторону вспомогательного метода (как следует из названия):

resources :posts, as: "articles"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...