Один вариант:
resources :companies do
get :list, :controller => :locations
end
создаст этот маршрут:
company_list GET /companies/:company_id/list(.:format) {:action=>"list", :controller=>"locations"}
И это обеспечит вас вспомогательным методом company_list
.
Это, однако,
resources :companies do
get :list, :controller => :locations
resources :locations
end
также предоставит вам помощника company_locations
, который вместо этого указывает на действие index
в LocationsController вместо list
.
company_locations GET /companies/:company_id/locations(.:format) {:action=>"index", :controller=>"locations"}
Последний более RESTful, но вы разработчик, так что вы сами решаете, какое наименование поможет вам больше.
Недостатком является то, что большинство действий / помощников на вашем контроллере Locations теперь зависят от наличия: company_id или инстанцированной модели компании, прикрепленной к ним.
EDIT
3-й вариант:
resources :companies do
get :list, :controller => :locations
end
resources :locations
Это кажется лучшим, так как кроме маршрута 'company_list', вы не утверждаете, что вам особенно нужны места, отфильтрованные по компании.