2017-05-27 69 views
0

我正在嘗試調用我在rails 4項目中的實用程序模塊中的方法。我在整個軌道項目中使用該模塊來記錄activerecord的行爲,最近我在項目中添加了sidekiq來每天執行一些客戶分析,但我似乎無法讓sidekiq工作人員包含該模塊。如何在sidekiq工人類中的lib文件夾中包含rails模塊

這是我在工人檔案:

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

實用程序文件的位置是:

lib/utility 

和模塊是這樣寫這樣:

module CusomterUtils 

def get_average_spend 
.. 
end 
... 

關於我應該做什麼的想法?

感謝

+1

嘗試使用'require'lib/utils/customer_utils.rb'' – edudepetris

+1

傳遞相對路徑時,必須使用'require_relative'。 –

回答

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'

+1

這是一個錯字,正確的文件夾是utils :) – rubyist

相關問題