2016-08-10 16 views
0

複数の異なるユーザーの役割がある場所を利用しています。一部の製品カテゴリは特定のユーザーのみが使用できます(たとえば、卸売顧客は卸売製品にアクセスできます)。どのように私はこれを制限するだろうか?私はそれが製品を示していますが、それはどこかに早く実行する必要があるので、これはretrieve_productsメソッドをオーバーライドする部分積でタクソンとユーザーの役割に基づいて製品を表示する方法

<% 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"') %>

を使用して、それを実行しようとしました。私は/lib/spree/core/search/base.rb retrieve_productsで試しましたが、これはspree_current_userを認識しません...

申し訳ありません。どんなヒントも高く評価されます。あなたの拡張機能の下した後

答えて

1

まずあなたが拡張機能を作成しなければなりません

extension guides

このファイルプットで/controllers/spree/home_controller_decorator.rb

を作成します。

module Spree 
    HomeController.class_eval do 
    def index 
    @retrieve_prodcuts = # type here your @products code 
    end 
    end 
end 

同様に、あなたはproducts_controllerや他にもこれを行うことができますコントローラ。

関連する問題