嵌套资源和on:collection不能满足我的期望

时间:2013-06-12 15:07:14

标签: ruby-on-rails ruby routes

我的routes.rb

   resources :users do
      resources :tags, on: :collection
      get :some_page, on: :collection
    end

和rake路线

users/:user_id/tags(.:format) --- tags#index
users/:user_id/tags(.:format) --- tags#create
users/:user_id/tags/new(.:format) --- tags#new
//......
users/some_page(.:format) --- users#some_page

并且有2个控制器:UsersControllerUsersTagsController

我希望标签的路线为:

users/tags(.:format) --- users_tags#index
users/tags(.:format) --- users_tags#create
users/tags/new(.:format) --- users_tags#new
//............

为什么他们看起来不像这样,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我想这是因为:on仅适用于单一路线。试试这个:

resources :users do
  collection do
    resources :tags
  end
end

答案 1 :(得分:0)

您应该为控制器命名Users::TagsController 然后在路线中:

namespace :users do
  resources :tags
end