2012-12-06 87 views
1

自定義操作,我現在有這些路線設置:Rails的命名空間的路線和資源

namespace :api do 
    namespace :v1 do 
    resources :users do 
     match 'api/v1/users/all' 
    end 
    resources :sessions 
    end 
end 

我試圖建立一個自定義的萬年之訴我的用戶名爲「所有」控制器。

如何獲得匹配的路線?我試過這些,並且沒有路由錯誤:

resources :users do 
    match 'api/v1/users/all' => "users#all" (also "api/v1/users#all" and "api_v1_users#all" 
end 

什麼路線可以讓我與自定義操作連接?

感謝

回答

2

您需要添加一個collection

namespace :api do 
    namespace :v1 do 
    resources :users do 
     collection do 
     get 'all' 
     end 
    end 
    resources :sessions 
    end 
end 

namespaceresources方法調用創建層次結構;與resource :users塊嵌套的路線將採用其祖先的路徑。 collection在資源集合上創建嵌套路由,而不是資源的單個實例。

/api/v1/users/all 

推薦閱讀:http://guides.rubyonrails.org/routing.html#adding-collection-routes