我有一個模型的CRUD控制器。Rails 3:將資源路由到另一個名稱
做resources :foo
允許我路由/foo/:id
等調用動作。
我想爲另一種語言的'foo'翻譯添加路線。讓我們說'託託'。 所以我想要所有的/toto/:id
等,路線的行爲完全像/foo/:id
等路線。
我該如何做到這一點?
我有一個模型的CRUD控制器。Rails 3:將資源路由到另一個名稱
做resources :foo
允許我路由/foo/:id
等調用動作。
我想爲另一種語言的'foo'翻譯添加路線。讓我們說'託託'。 所以我想要所有的/toto/:id
等,路線的行爲完全像/foo/:id
等路線。
我該如何做到這一點?
您可以添加新的資源,並指定FOO作爲控制器:
resources :toto, :controller=>"foo"
這將指向所有的行動,以「富」,但有一個疑難雜症。我想如果你使用foo_url或類似的東西,你會遇到頁面上的鏈接問題。所以你必須找出一種方法來根據「request.path」中的控制器以動態方式創建URL。
這將讓你重新命名,用戶所看到的路徑,但保持你的控制器的原名稱中的代碼:
scope(:path_names => { :new => "neu", :edit => "bearbeiten" }) do
resources :categories, :path => "kategorien"
end
+1這是一個! – 2013-10-31 02:32:57
可以實現的東西接近這個使用範圍:
scope ':language/' do
resources :foo, controller: 'bar_controller'
end
這使得你的bar_controller成爲任何東西/ foo的資源,其中任何東西都被傳遞爲:language參數。
這樣:
都得到通過bar_controller處理,與正常的資源映射,你會得到PARAMS [ :語言]在控制器中是免費的。
如果我正確理解你,你只想使用另一條路徑。
resources :foo, path: 'toto'
現在你將有:
GET /toto foo#index
GET /toto/:id foo#show
...
不過就像用Rails 4.1 – Omni 2014-09-12 01:19:39
魅力的任何想法,我們怎麼能得到的意見,從意見'的/ toto'代替'看法加載/ foo'? – FloatingRock 2014-10-27 05:55:58
'resources:toto,:controller =>「foo」,:path =>「toto」' – Ruby 2015-09-22 10:03:25