2017-05-27 3 views
0

私はレール4プロジェクトにあるユーティリティモジュールのメソッドを呼び出そうとしています。私はいくつかのactiverecordの動作のために私のレールプロジェクトを通してモジュールを使用しています。私は最近、毎日顧客分析を行うためにプロジェクトにsidekiqを追加しましたが、sidekiqワーカーにはモジュールをまったく組み込むことはできません。sidekiqワーカークラスのlibフォルダにレールモジュールを含める方法

これは私がワーカーファイル内に持っているものです。

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

ユーティリティファイルの場所はである:

lib/utility 

、モジュールがそうのように書かれている:

module CusomterUtils 

def get_average_spend 
.. 
end 
... 

私は何をすべきか考えていますか?

# lib/utils/customer_utils.rb 
module Utils 
    class CustomerUtils 
    ... 
    end 
end 

または

# lib/customer_utils.rb 
class CustomerUtils 
    ... 
end 

を通常フォルダ名が名前空間であり、ファイル名はクラスである:私はこれらのいずれかが動作するはずです、Rails autoloading convention names以下をお勧めします

おかげ

+1

'require 'lib/utils/customer_utils.rb''を試してください – edudepetris

+1

相対パスを渡すときには' require_relative'を使う必要があります。 –

答えて

1

名。

Railsのバージョンより命名規則が変更されているので、特定の設定オプションがなければlibが自動的にロードされないことがあります。

また、require_relative '../lib/utils/customer_utils.rb'を使用することもできます。

+1

これはtypoだった正しいフォルダはutilsです:) – rubyist

関連する問題