加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在Spree 2.x / Rails 4中覆盖product_url

发布时间:2020-12-17 02:40:37 所属栏目:百科 来源:网络整理
导读:我希望我的产品网址看起来像: /产品名称在这里/ P 代替: /产品/产品名称,在这里 我怎样才能做到这一点? 解决方法 经过大量的研究,我发现了它. 这个过程分为两步.第一种是创建与新产品路线匹配的路线. 所以进入你的routes.rb和本节: mount Spree::Core::E
我希望我的产品网址看起来像:

/产品名称在这里/ P

代替:

/产品/产品名称,在这里

我怎样才能做到这一点?

解决方法

经过大量的研究,我发现了它.

这个过程分为两步.第一种是创建与新产品路线匹配的路线.

所以进入你的routes.rb和本节:

mount Spree::Core::Engine,:at => '/' 
 # Spree Specific routes here
end

添加以下行:get’:id / p’=> “大礼包/产品#秀”

所以现在它看起来像这样:

mount Spree::Core::Engine,:at => '/' 
 # Spree Specific routes here
 get ':id/p' => 'spree/products#show'
end

此时,您应该能够使用新的url结构访问产品页面:/ product-name-here / p

现在的问题是,通过spree自动生成到产品页面的所有链接仍将使用旧的URL结构,因此我们也必须修复它.为此,我们将为spree用于生成这些URL的product_path函数创建一个覆盖.在helper文件夹中创建一个名为“spree”的新目录,然后在该目录中创建一个名为products_helper.rb的新文件.

现在在这个文件app / helpers / spree / products_helper.rb中添加以下代码:

module Spree::ProductsHelper

  def product_path(product)
    "/#{product.permalink}/p"
  end

end

就是这样.现在,spree生成的所有链接都将使用该新的URL结构.您可以修改本指南,在您的产品的spree中制作您想要的任何网址结构.

故障排除提示

不知道为什么,但是在我创建ProductsHelper之后,当我去购物车时遇到一个未定义的函数时出现了错误:line_item_description_text

我没有在我的购物车中使用正常的狂欢描述,所以为了解决这个问题,我刚刚补充说:

def line_item_description_text (var)
  ""
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读