Ruby on rails 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
参数化
的拐点函数。它允许非常好的永久链接,删除所有特殊字符并替换为破折号
但是,当使用具有多个单词的控制器时(例如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
: