【问题标题】:rails url as breadcrumbrails url作为面包屑
【发布时间】:2016-09-08 15:42:52
【问题描述】:

对 SEO 优化 url 的功能请求:- (友好的 url 仅将 id 替换为名称/标题),

当前的 URL 清洗机是: //localhost:3000/products?product_category_id=15#WashingMachine 同一页面的自定义 URL 应该是:(根据面包屑) http://localhost:3000/HomeEssentials/Cleaning&Drying/WashingMachine HomeEssentials > 清洁&烘干 > 洗衣机就是面包 crumbs,它有父子菜单结构。

这必须发生在每个产品类别中,例如, product?product_category_id=35#Football,就面包屑而言:- 首页 > 运动休闲 > 足球。 (导致一个像 - localhost:3000/Home/Sports&Leisure/Football.)

我查看了友好的 url gem、存根和更改 to_param 在模型中,但有效地将 id 替换为标题/名称, 或我们设置的任何参数。但是它不会替换整个 url,在 方式如预期。 (答案可能在于更改路由文件,(映射等) 但到目前为止我的搜索还没有取得太大的成功)。 目前,请求正在从主页生成,进入 -

产品控制器和参数产品类别ID正在 通过了。

  • subMenuCat_tab.id) %>
  • 在这方面的任何建议/帮助将不胜感激。

    【问题讨论】:

    • 你可以使用这个 gem github.com/fnando/breadcrumbs。集成非常简单。然后您可以添加自己的 css 来设计。
    • @monsur,也试过了。实际上,我们已经有了 gem 'breadcrumbs_on_rails' 的实现,我还添加了新的 gem 'breadcrumbs', '~> 0.1.7'。 add_breadcrumb "Home", :root_path 是现有实现的一部分,它在产品 index.html.erb 页面中用作 :li, :separator => "" %>。但是,问题是,拥有显示在 url 中。

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    如果

    在你的 routes.rb 中

    get 'HomeEssentials/:product_category_title/:product_title' to: 'products#show'
    

    然后在你的 products_controller.rb 中

    def show
       @product = Product.find_by(title: params[:product_title], product_category_id: params[:product_category_title])     
    end
    

    【讨论】:

    • 我也尝试过,但收效甚微。从主页到这些链接中的每一个的请求看起来像 - 开始 GET "/products?product_category_id=15" for ::1 at 2016-09-08 13:38:27 +0530 由 ProductsController#index 作为 HTML 参数处理:{" product_category_id"=>"15"}。路由文件最初有资源:products,只有:[:index, :show, :create]。修改为包括 - 获取 '/HomeEssentials/:product_category_title/:product_title', to: 'products#show' 。 products 控制器中的 show 方法永远不会被调用,尽管 rake 路由确实有一个新路由。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多