2011-10-26 59 views
0

我已經在英文中實現了RESTFUL路由,但該應用是針對德國用戶的,因此路由應該重命名爲德語。我使用:path_names選項和CRUD路由,但這不適用於我自己創建的路由。例如,模型SingleBudget具有從n..n關聯中移除特定對象的動作。在我的routes.rb它看起來像這樣:如何爲自定義路由覆蓋:path_names

resources :single_budgets, :path => 'einzelbudgets', :path_names => { :new => 'neu', :edit => 'aendern', :remove => 'entfernen' } do 
    collection do 
      get ':id/remove' => "single_budgets#remove", :as => :remove 
    end 
end 

它適用於新的和編輯作用,但不能爲刪除操作。有沒有人有一個想法如何解決它?

回答

2

:path_names參數只會影響內置的CRUD操作。爲了您的自定義操作,只是把它你想就在get參數是什麼:

get ':id/entfernen' => "single_budgets#remove", :as => :remove 

這會給你一個remove_single_budgets路徑將指向/single_budgets/:id/entfernen,這將在你的控制器執行remove方法。