gpt4 book ai didi

ruby-on-rails - 带有以斜杠结尾的约束的通配符路由

转载 作者:行者123 更新时间:2023-12-04 03:38:09 25 4
gpt4 key购买 nike

我有 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 产生影响。即使你不这样做,你也应该考虑一下在测试这些路线时会遇到的困难。你的测试会很脆弱,从长远来看这会导致很多挫折。

我的建议是:如果你想区分 listshow , 将它们放入 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

可以带用户到 country#show .这要容易得多。它也更加标准和用户友好。如需更多信息,请参阅 Rails Routing from the Outside In.

关于ruby-on-rails - 带有以斜杠结尾的约束的通配符路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com