未加载 lib 文件 (Rails 5)

lib files are not loading (Rails 5)

我无法从我的应用程序的 lib 文件夹加载模块。这是我要加载的 file/module:

# app/lib/reusable.rb    
module Reusable

  # Check if the value is completely blank & empty
  def is_empty(value)
  end

end

我试过 #config.eager_load_paths << "#{Rails.root}/lib"Dir[Rails.root.join('lib/**/*.rb')].each { |f| require f } 在 config/application.rb 内,但仍然无法正常工作。

我也尝试过 config.eager_load_paths << "#{Rails.root}/lib" 并且还尝试将 /lib 的所有文件移动到 app/lib 中,就像这里建议的那样: https://github.com/rails/rails/issues/13142 。但仍然有 none 个有效!

顺便说一句,不工作,我的意思是我得到了这个错误:

undefined methodis_empty' 对于 #:0x007f923c3c4b20>`

基本上Rails找不到我在我试图加载的可重用模块中定义的方法。

有没有我遗漏的步骤?或者 Rails 方面有问题?

正在加载文件。如果不是,您将收到 uninitialized constant Reusable 错误而不是 undefined method 错误。

如果您要拨打:

Reusable.is_empty(value)

那么is_empty需要是class方法。类似于:

# app/lib/reusable.rb    
module Reusable

  # Check if the value is completely blank & empty
  def self.is_empty(value)
  end

end

或:

# app/lib/reusable.rb    
module Reusable

  # Check if the value is completely blank & empty
  class << self

    def is_empty(value)
    end

  end

end    

取决于您的喜好。