我正在开发一个具有一些CMS功能的应用,其中客户端可以匹配其文章的任意路径。
现在,我想使用route globbing来匹配任何html请求,然后检查控制器是否有一些文章要显示。如果没有文章,我想将请求发回到路线解析流程中,以搜索其他可能的匹配。
我想应该有一个例外,但我无法弄明白。这不是RoutingError
。
答案 0 :(得分:0)
配置文件:config/routes.rb
在定义应用程序路由时从上到下运行。您需要做的就是在此文件的顶部定义一个catch-all。
我还建议您考虑使用某种Constraint
(这样您也可以缓存结果)。例如,您的解决方案可能类似于:
# config/routes.rb
get '*', to: 'Article#show', constraints: ArticleConstraint.new
# lib/article_constraint.rb
class ArticleConstraint
def matches?
# Really trivial example... You could make this better, e.g. use cacheing!
Article.exists?(name: request.path)
end
end