我正在使用Ruby on Rails 3.0.7,並試圖設置嵌套的資源路由使其以「不常規」的RoR方式工作。以「不正常」的Ruby on Rails方式嵌套資源的路由器
在我routes.rb
文件我有
resources :articles do
resources :categories, :only => [:index], :controller => 'articles/categories' # The related controller is Articles::CategoriesController
end
,這樣我可以瀏覽以下網址:
<my_site>/articles/1/categories
<my_site>/articles/2/categories
...
我會做的是訪問的類別new
,edit
和show
控制器動作使用與上述嵌套資源(即Articles::CategoriesController
)相同的articles/categories
控制器並訪問這些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
做一些事情,但我不知道該怎麼做。
你想要/articles/2/categories/new或/articles/categories/new。我要求驗證這是一個錯字?:) –
felix
@Felix - 我想訪問'/articles/categories/new'路徑並使用'Articles :: CategoriesController'' new' action。 –
Backo
您可能可以爲/articles/categories/new添加名稱空間。這裏解釋http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing –
felix