lib文件未加载(Rails 5)

时间:2017-10-12 17:05:25

标签: ruby-on-rails ruby-on-rails-5 autoload

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

enter image description here

# 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 },并尝试将/ lib的所有文件移动到app / lib中,如下所示:https://github.com/rails/rails/issues/13142。但仍然没有一个有效!

不过,不工作,我的意思是我收到了这个错误:

config.eager_load_paths << "#{Rails.root}/lib" is_empty&#39;对于#:0x007f923c3c4b20&gt;`

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

我缺少哪些步骤?或者在Rails方面存在问题?

1 个答案:

答案 0 :(得分:2)

正在加载文件。如果不是,则会出现undefined method错误,而不是Reusable.is_empty(value) 错误。

如果你打算打电话:

is_empty

然后# 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    

或者:

var leagueList = [Dictionary<String, Array<String>>]()


for dict in leagueList {

    let key = dict.key as String!

    if key == deletedAge {
        self.leagueList.removeValue(forKey: deletedAge!)
    }
} 

取决于您的偏好。