首页 > 解决方案 > 如何在 spree 中注册新的 finder 课程?

问题描述

使用 spree v4.3,我正在尝试注册新的查找器类,但无法找到正确的方法,就像我们可以替换应用程序依赖项中的现有服务、序列化程序等一样(https://dev-docs. spreecommerce.org/customization/dependencies),我们如何注册新的finder类?

例子:

module Spree
  module Employee
    class FindCurrent
      def initialize(scope: nil)
        @scope = scope || Spree::Employee
      end

      def execute
        scope.find_by(id: session[:current_employee_id])
      end

    end
  end
end

尝试使用初始化程序注册 -

Spree.dependencies do |dependencies|
  # Example:
  dependencies.current_employee_finder = 'Spree::Employee::FindCurrent'
end

但是当在控制器中使用它时,如下所示 -

current_employee_finder.new.execute

我仍然得到未定义的方法 - current_employee_finder。什么是定义这个的正确方法。

先感谢您。

标签: ruby-on-railsrubyoverridingspreeprepend

解决方案


推荐阅读