2011-03-10 89 views
7

是否有可能強制Rails在引用控制器時使用破折號( - )而不是下劃線。帶有破折號而不是下劃線的Rails控制器名稱

目前有一個很好的函數Inflectorparameterize。它允許在卸下,並用破折號代替所有的特殊字符非常漂亮的永久鏈接...

然而,使用具有多個單詞(如contact_methods_controller.rb例如)控制器時,您可以在定義路線:

resources :contact_methods 

這將創建一個映射到/contact_methods(不是/contact-methods)。當我混這兩個,我會變得非常惡劣的網址,如:

/contact_methods/1-preferred-email 

我想有破折號,而不是下劃線Rails的地圖控制器。我所有的研究說,到每個控制器單獨映射:

match 'contact-methods(/:action)' => 'contact_methods' 

但是這是非常愚蠢的,在我看來,它變得混亂,如果我的嵌套資源......我不應該定義這些定製路線。 ActionDispatch中是否有自動重寫這些內容的設置?我無法找到一個...

回答

10

在你route.rb

resources "contact-methods", :controller => :contact_methods, :as => :contact_methods 

編輯:您必須指定:as => ...路徑,否則ActionDispatch拋出一個合適的...

+0

我稍微修改一下你的答案,但是謝謝! – sethvargo 2011-03-10 20:27:14

+0

哈哈我到了那裏......我之前評論過我開始編輯:) – sethvargo 2011-03-10 20:28:54

+0

是的,你是對的,thanx :) – fl00r 2011-03-10 20:29:12

相關問題