Ruby on rails Rails控制器名称使用破折号而不是下划线

Ruby on rails Rails控制器名称使用破折号而不是下划线,ruby-on-rails,ruby-on-rails-3,url,seo,Ruby On Rails,Ruby On Rails 3,Url,Seo,在引用控制器时,是否可以强制Rails使用破折号(-)而不是下划线 目前存在一个名为参数化的拐点函数。它允许非常好的永久链接,删除所有特殊字符并替换为破折号 但是,当使用具有多个单词的控制器时(例如contact\u methods\u controller.rb),您可以定义您的路线: resources :contact_methods 这将创建到/contact\u methods(而不是/contact methods)的映射。当我混合使用这两种方法时,会得到丑陋的URL,如: /co

在引用控制器时,是否可以强制Rails使用破折号(-)而不是下划线

目前存在一个名为
参数化
拐点函数。它允许非常好的永久链接,删除所有特殊字符并替换为破折号

但是,当使用具有多个单词的控制器时(例如
contact\u methods\u controller.rb
),您可以定义您的路线:

resources :contact_methods
这将创建到
/contact\u methods
(而不是
/contact methods
)的映射。当我混合使用这两种方法时,会得到丑陋的URL,如:

/contact_methods/1-preferred-email
我希望Rails地图控制器使用破折号而不是下划线。我的所有研究都表明要单独映射每个控制器:

match 'contact-methods(/:action)' => 'contact_methods'
但在我看来,这真的很愚蠢,如果我在嵌套资源,它会变得一团糟。。。我不应该将这些定义为自定义路线。
ActionDispatch
中是否有自动重写这些内容的设置?我在你的路线上找不到一个…

。rb

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

编辑:您必须指定
:as=>…
路径,否则
ActionDispatch
会引发一场骚动…

哈哈,我到了。。。我在开始编辑之前评论道:)不,谢谢你。。。我可以问一下您是从哪里找到这个的吗?/您是怎么知道的?我正在研究实现STI路由(这个问题),所以我在这里阅读了
资源的API