gpt4 book ai didi

ruby-on-rails - 在 Rails 中,如何像 AngelList 那样为任意字符串生成路由?

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:59 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何生成与 AngelList 使用的相同的路由。如果您查看它们的 URL,您会发现它们具有以下形式:

  • angel.co/<用户名>
  • angel.co/<标签>
  • angle.co/<链接到内部页面>

你会如何在 Rails 3 中做到这一点?

最佳答案

这是我将如何做到这一点(可能不是最有效的,但会起作用)

创建一个名为 URLRouter 的虚拟 Controller

在 config/routes.rb 中

match ':object' => 'URLRouter#show'

这将在您的 URLRouter Controller 中调用 SHOW 操作,并将他们请求的内容放入 params[:object]。

在该 URLRouter Controller 中,放置以下代码:

if User.find_by_username(params[:object])
render "users/show/#{params[:object]}"
end

对每个不同的模型重复此 if 语句。第一个模型将优先于第二个模型,第二个模型将优先于第三个模型,依此类推。

请注意,您需要确保不能创建与用户名具有相同值的标签,并且不能创建与内部链接具有相同值的用户名,等等。否则,您可能会得到一个无法访问的页面(因为 URL 可能会路由到与您预期不同的模型)。

另一个重要的注意事项是,如果您以这种方式修改路由,我会将此匹配语句放在其余部分之后。

关于ruby-on-rails - 在 Rails 中,如何像 AngelList 那样为任意字符串生成路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617905/

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