ruby-on-rails – 带有约束的通配符路由以尾部斜杠结尾
发布时间:2020-12-17 03:49:13 所属栏目:百科 来源:网络整理
导读:我有2个通配符路由,如下所示: get '*country_path/',to: 'country#list',constraints: { country_path: //$/ }get '*country_path/:title',to: 'country#show' 当url有一个尾部斜杠时,应调用country#list.例子: www.example.com/usa/california/www.examp
我有2个通配符路由,如下所示:
get '*country_path/',to: 'country#list',constraints: { country_path: //$/ } get '*country_path/:title',to: 'country#show' 当url有一个尾部斜杠时,应调用country#list.例子: www.example.com/usa/california/ www.example.com/usa/california/abc/ country#show应该在没有尾部斜杠时调用.例子: www.example.com/usa/californa/travel www.example.com/usa/californa/average-income 目前我的约束似乎不起作用,因为所有请求都转到country #list. 我的路线约束有什么问题? 解决方法
您应该问问自己这是否真的是实现您想要做的事情的最佳方式.网站通常不关心目录中的尾部斜杠.例如:
www.facebook.com/username 会带你去同一个地方: www.facebook.com/username/ 绝大多数网站都是这样工作的,所以你现在要做的就是反对网络惯例.如果你关心它,肯定会对SEO产生影响.即使你不这样做,也应该考虑在测试这些路线时你将面临的困难.你的测试会很脆弱,从长远来看会引起很多挫折. 我的建议如下:如果你想区分列表和节目,请将它们放入URL中.例如: www.example.com/usa/california/list www.example.com/usa/california/abc/list 可以将用户带到country#list,以“california”和“abc”作为参数.同理: www.example.com/usa/californa/travel/show www.example.com/usa/californa/average-income/show 可以将用户带到国家#show.这要容易得多.它也更标准和用户友好.有关更多信息,请参阅Rails Routing from the Outside In. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |