Я использую Ruby on Rails 3.0.7 и пытаюсь настроить маршрутизацию вложенных ресурсов, чтобы она работала "нерегулярным" способом RoR.
В моем routes.rb
файле у меня есть
resources :articles do
resources :categories, :only => [:index], :controller => 'articles/categories' # The related controller is Articles::CategoriesController
end
, чтобы я мог просматривать следующие URL:
<my_site>/articles/1/categories
<my_site>/articles/2/categories
...
Я хотел бы получить доступ к действиям контроллера new
, edit
и show
для категорий, используя тот же контроллер articles/categories
, используемый для указанного выше вложенного ресурса (то есть Articles::CategoriesController
), и зайдя по этим URL:
<my_site>/articles/categories/new
<my_site>/articles/categories/edit
<my_site>/articles/categories/1
<my_site>/articles/categories/2
...
Как я могу это сделать? Как мне кодировать роутер?
Может быть, я могу что-то сделать, используя роутер collection
метод, подобный этому
resources :articles do
collection do
# match something here for the Articles::CategoriesController...
end
resources :categories, :only => [:index], :controller => 'articles/categories'
end
но я не знаю, как это сделать.