gpt4 book ai didi

ruby-on-rails - 如何在不需要前缀的情况下为 Vanity URL 设置 Rails routes.rb

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:34:26 26 4
gpt4 key购买 nike

我希望设置 routes.rb 以支持不需要前缀的虚 URL。例如,不需要 mysite.com/articles/seo-url-here 中的“articles/”。我只想要 mysite.com/seo-url-here

我如何设置 routes.rb 以便当 url 访问我的站点时:routes.rb 查看 url 中 seo-url-here 的值是否与我的数据库中的记录匹配在表 Article.seo_url 中。如果未找到匹配项,则 routes.rb 应继续向下移动到 routes.rb 文件的其余部分。

最佳答案

入门的基本代码:

# config/routes.rb

Rails.application.routes.draw do
resources :posts
resources :authors

constraints(PostUrlConstrainer.new) do
get "/:id", to: "posts#show"
end
end

# app/constraints/post_url_constrainer.rb

class PostUrlConstrainer
def matches?(request)
title = request.path_parameters[:id]
Post.find_by(title: title)
end
end

# app/controllers/posts_controller.rb

def set_post
@post = Post.find_by(title: params[:id])
end

相关文章:Pretty, short urls for every route in your Rails app - Arkency Blog

搜索 rails url constraint 似乎有帮助。

关于ruby-on-rails - 如何在不需要前缀的情况下为 Vanity URL 设置 Rails routes.rb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41420180/

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