我喜欢友好的id gem,但我看到的一个问题是,当我输入一个包含大写字母的url时,比如/users/Joe-Blogs,它找不到页面。这有点微不足道,但大多数网站都可以处理这样的事情,并将生成页面,无论它是否有一个大写字母。有谁知道解决这个问题的方法吗?
编辑:为了澄清这一点,这是当用户手动输入一个url并在其中放上大写字母时,只是因为它是一个像作者/Joe-Blogs这样的名字。我见过其他网站处理这个问题,但rails似乎只给出了404。
发布于 2015-12-30 16:47:16
friendly_id使用parameterize创建插件。
我认为解决问题的最好方法是先参数化参数,然后再使用它来查找。
# controller
User.find(params[:id].parameterize)或者参数化该链接所源自的url。
发布于 2015-12-30 18:32:54
作为对Vic答案的补充,您将希望查看url normalization
在RFC 3986中描述了以下标准化,以产生等效的URL:将方案和主机转换为小写。
URL的方案和主机组件不区分大小写。大多数规格化器都会将它们转换为小写。
示例:http://www.example.com/ /→
简而言之,在urls中使用大写是违反惯例的。
您可能还希望查看URI normalize;更重要的是,您应该努力去掉URL的大小写:
URI.parse(params[:id]).normalizehttps://stackoverflow.com/questions/34525782
复制相似问题