Rails路由 - 如何使它们不区分大小写?

Wil*_*nes 10 routes ruby-on-rails case-sensitive case-insensitive

Ruby on Rails中的路由区分大小写.似乎有人在此之前提出了这个问题,并且它已被标记为无法修复.

http://rails.lighthouseapp.com/projects/8994/tickets/393-routes-are-case-sensitive

这让我感到很不幸,因为我并不认为我自己申请路由是区分大小写有任何好处,而在不利方面它会造成混淆的可能性以及我认为缺乏修饰的普遍表现.

什么是使我的路线不区分大小写的最佳方法?

我在Google搜索中找到了这个提示:

map.connect "web_feeds/:action", :controller  => 'web_feeds', :action => /[a-z_]+/i
Run Code Online (Sandbox Code Playgroud)

这很聪明,但它仍然使URL的web_feeds部分区分大小写.我没有看到任何类似的方法,但是,没有手动输入每个可能的wEb_feEds组合,但这显然是一个可怕的解决方案,出于各种原因.

Joh*_*ley 11

Rails中的路由区分大小写,因为URL区分大小写.来自W3C:

URL通常区分大小写(机器名称除外).可能存在URL或URL的一部分,其中大小写无关紧要,但识别这些可能并不容易.用户应始终认为URL区分大小写.

  • 我很欣赏这样一个事实:有时候能够区分案例很重要(虽然坦率地说,我能想到的唯一的例子是极端情况),但对于普通用法,这是违背用户期望的.用户希望stackoverflow.com/questions与stackoverflow.com/Questions相同,事实上,情况确实如此.而且我不确定普通用户是否会考虑W3C的建议他们"应该始终认为URL是区分大小写的". (19认同)

小智 7

我只是有同样的问题,并使用中间件解决了它 - 看看这里:

http://gehling.dk/2010/02/how-to-make-rails-routing-case-insensitive/

注意:这仅适用于Rails 2.3+

  • 卡斯滕