如何根据分类和展示显示产品用户角色

时间:2016-08-10 02:00:53

标签: ruby-on-rails spree

我有一个狂欢网站,其中有多个不同的用户角色。某些类别的产品仅适用于某些用户(例如,批发客户可以访问批发产品)。我怎么限制这个?我试着用

<% if spree_current_user.has_spree_role?("wholesale") %>

<% @products = Spree::Product.find_by_sql('SELECT sp.* FROM spree_products sp LEFT JOIN spree_products_taxons spt ON spt.product_id = sp.id LEFT JOIN spree_taxons st ON spt.taxon_id = st.id WHERE st.name = "Wholesale"') %>

在显示产品的产品部分中,但这会覆盖retrieve_products方法,因此需要在某处提前完成。我在/lib/spree/core/search/base.rb retrieve_products中尝试了它但是这不能识别spree_current_user ......

抱歉是个菜鸟。任何提示将非常感激。

1 个答案:

答案 0 :(得分:1)

首先,你必须创建扩展

extension guides

在您的扩展程序下创建Context

在此文件中:

/controllers/spree/home_controller_decorator.rb

同样,您也可以为module Spree HomeController.class_eval do def index @retrieve_prodcuts = # type here your @products code end end end 或其他控制器执行此操作。