我有一个名为 user_searches 的模块。它执行一些不是用户模型核心的搜索,因此,我将责任放在其他地方。我想像这样组织我的所有模型,这些模型在名为 user 的 lib 子文件夹中执行非核心用户功能。现在要在用户模型中包含模块的方法,我必须把......
require 'user/user_searches'
class User < ActiveRecord::Base
include UserSearches
end
...如果文件直接在 lib 文件夹中,我不需要 require,但如果它在子文件夹中,则需要。我需要做什么才能不需要要求?
最佳答案
您可以将必要的需求行放入 lib/user.rb
这样,所有需求都会在应用程序启动时递归加载。
或者,您可以将这样的内容放入初始化程序中:
# put into config/initializers/load_lib.rb
Dir["#{RAILS_ROOT}/lib/**/*.rb"].each { |f| require(f) }
它将需要您的 lib 文件夹中的所有 ruby 文件。你只需要确定这是否真的是你想要的:)
关于ruby-on-rails - lib中的子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981267/