【问题标题】:Ruby On Rails Overlapping RoutesRuby On Rails 重叠路由
【发布时间】:2017-02-08 21:06:52
【问题描述】:

我正在使用 Magento 在 Rails 中重建/重新设计一个网站,该网站目前正在生产中。为了确保我不会降低我的 seo 排名,我保持我的 URI 相同。我正面临一个优化问题,因为当前站点没有子目录。话虽如此,产品在网站根目录下,评论在网站根目录下,所有其他内容页面都在网站根目录下。 例如,产品可能在

www.example.com/some-product-name

评论可以在

www.example.com/some-review-name

rails 显然使用了路由,我的第一个猜测是创建一个如下所示的路由:

get '/:uri_identifier', to: 'pages#find_page'

这很好用,但是要查询 50k 产品和 5k 评论以及另外 200 个不同的内容页面,这会产生一个优化问题,因为这个控制器方法变成了一个包罗万象的方法,以确定它应该基于哪个页面呈现

params[:uri_identifier]

uri 也没有任何形式,因此使用 if 语句过滤它们以避免大量查询实际上是不可行的。我的想法是为评论创建特定的路线并将它们添加到路线上方的 routes.erb 中

get '/:uri_identifier', to: 'pages#find_page'    

但我仍然需要创建近 5k 条路线才能实现这一目标。我确实尝试了这个并且它有效,但我不确定解决这个问题的最佳方法是什么,以确保我使用最少的资源。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    有几种模式可以解决 Rails 中的此类问题。其中之一是 slug 约束。使用这些资源,他们有助于了解使用 slug 和重构大型铁路路线的概念

    1. http://blog.arkency.com/2014/01/short-urls-for-every-route-in-your-rails-app/
    2. http://code-worrier.com/blog/custom-slugs-in-rails/
    3. Refactoring a large routes.rb file in rails 4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2018-12-28
      • 2011-05-11
      相关资源
      最近更新 更多