lib中的子文件夹

我有一个名为user_searches的模块。 它执行一些不是用户模型核心的搜索,因此,为什么我将责任放在其他地方。 我想组织所有这样的模型,在名为user的lib子文件夹中执行非核心用户function。 现在要在用户模型中包含模块的方法,我必须把…

require 'user/user_searches' class User < ActiveRecord::Base include UserSearches end 

…如果文件直接在lib文件夹中,我不需要require,但如果它在子文件夹中,则不需要。 我该怎么办?我不需要这个要求

您可以将必要的require行放入lib/user.rb ,这样就可以在应用程序启动时递归加载所有需求。

或者,你可以把这样的东西放到初始化器中:

 # put into config/initializers/load_lib.rb Dir["#{RAILS_ROOT}/lib/**/*.rb"].each { |f| require(f) } 

它将需要lib文件夹中的所有ruby文件。 你只需要确定这是否真的是你想要的:)

这是导致的工作

在文件rails-2.2.2 / lib / initializer.rb中,方法default_load_paths初始化为加载路径只是没有子目录的lib文件夹,为了解决这个问题,你可以编辑项目`environment.rb配置文件并推入config.load_path数组所有子目录。