【问题标题】:How to include rails module in lib folder inside sidekiq worker class如何在sidekiq工人类的lib文件夹中包含rails模块
【发布时间】:2017-05-30 20:24:46
【问题描述】:

我正在尝试调用我在 rails 4 项目中的实用程序模块中的方法。我在我的 rails 项目中使用该模块进行一些 activerecord 行为,我最近将 sidekiq 添加到项目中以每天执行一些客户分析,但我似乎根本无法让 sidekiq 工作人员包含该模块。

这是我在工作文件中的内容:

require '../lib/utils/customer_utils.rb'

实用程序文件的位置在:

lib/utility  

模块是这样写的:

module CusomterUtils

def get_average_spend
..
end
...

知道我应该做什么吗?

谢谢

【问题讨论】:

  • 试试require 'lib/utils/customer_utils.rb'
  • 传递相对路径时必须使用require_relative

标签: ruby-on-rails ruby sidekiq


【解决方案1】:

我建议关注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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-07
    • 2012-11-15
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多