我正在尝试调用我在rails 4项目中的实用程序模块中的方法。我在整个rails项目中使用模块进行一些主动记录行为,我最近在项目中添加了sidekiq以便每天执行一些客户分析,但我似乎无法让sidekiq工作者完全包含该模块。
这是我在工作文件中的内容:
require '../lib/utils/customer_utils.rb'
实用程序文件的位置在:
lib/utility
模块的编写方式如下:
module CusomterUtils
def get_average_spend
..
end
...
关于我应该做什么的任何想法?
由于
答案 0 :(得分:2)
我建议关注Rails autoloading convention names,因此其中任何一个都应该有效:
# lib/utils/customer_utils.rb
module Utils
class CustomerUtils
...
end
end
或
# lib/customer_utils.rb
class CustomerUtils
...
end
通常,文件夹名称是名称空间,文件名是类名。
请注意,命名约定在Rails版本上发生了更改,因此如果没有特定的配置选项,lib
可能无法自动加载。
您也可以使用require_relative '../lib/utils/customer_utils.rb'
。