当引用控制器时,是否可以强制Rails使用短划线( - )而不是下划线。
目前存在一个名为Inflector
的{{1}}的不错功能。它允许非常好的永久链接删除所有特殊字符并用短划线代替...
但是,当使用具有多个单词的控制器(例如parameterize
)时,您可以定义路线:
contact_methods_controller.rb
这会创建一个resources :contact_methods
(不是/contact_methods
)的地图。当我混合这两个时,我得到了丑陋的URL,如:
/contact-methods
我想让Rails地图控制器使用破折号而不是下划线。我的所有研究都表示要单独映射每个控制器:
/contact_methods/1-preferred-email
但在我看来,这真的很愚蠢,如果我正在嵌套资源,它会变得混乱......我不应该将它们定义为自定义路由。 match 'contact-methods(/:action)' => 'contact_methods'
中是否有自动重写这些内容的设置?我找不到一个......
答案 0 :(得分:11)
在你的route.rb
中resources "contact-methods", :controller => :contact_methods, :as => :contact_methods
修改:您必须指定:as => ...
路径,否则ActionDispatch
会引发合适...