如何在 sidekiq worker class 的 lib 文件夹中包含 rails 模块
How to include rails module in lib folder inside sidekiq worker class
我正在尝试调用 rails 4 项目中的实用程序模块中的方法。我在我的 rails 项目中使用该模块进行一些 activerecord 行为,我最近将 sidekiq 添加到项目中以每天执行一些客户分析,但我似乎根本无法让 sidekiq 工作人员包含该模块.
这是我在工作文件中的内容:
require '../lib/utils/customer_utils.rb'
实用程序文件的位置在:
lib/utility
模块是这样写的:
module CusomterUtils
def get_average_spend
..
end
...
知道我应该做什么吗?
谢谢
我建议遵循 Rails autoloading convention names,因此其中任何一个都应该有效:
# lib/utils/customer_utils.rb
module Utils
class CustomerUtils
...
end
end
或
# lib/customer_utils.rb
class CustomerUtils
...
end
通常文件夹名称是命名空间,文件名称是 class 名称。
请注意,Rails 版本的命名约定发生了变化,因此 lib
可能无法在没有特定配置选项的情况下自动加载。
您也可以使用 require_relative '../lib/utils/customer_utils.rb'
.
我正在尝试调用 rails 4 项目中的实用程序模块中的方法。我在我的 rails 项目中使用该模块进行一些 activerecord 行为,我最近将 sidekiq 添加到项目中以每天执行一些客户分析,但我似乎根本无法让 sidekiq 工作人员包含该模块.
这是我在工作文件中的内容:
require '../lib/utils/customer_utils.rb'
实用程序文件的位置在:
lib/utility
模块是这样写的:
module CusomterUtils
def get_average_spend
..
end
...
知道我应该做什么吗?
谢谢
我建议遵循 Rails autoloading convention names,因此其中任何一个都应该有效:
# lib/utils/customer_utils.rb
module Utils
class CustomerUtils
...
end
end
或
# lib/customer_utils.rb
class CustomerUtils
...
end
通常文件夹名称是命名空间,文件名称是 class 名称。
请注意,Rails 版本的命名约定发生了变化,因此 lib
可能无法在没有特定配置选项的情况下自动加载。
您也可以使用 require_relative '../lib/utils/customer_utils.rb'
.