ruby-on-rails - lib中的子文件夹

标签 ruby-on-rails require subdirectory

我有一个名为 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/

相关文章:

ruby-on-rails - 你如何在 rails 中使用 LIKE 查询枚举?

ruby-on-rails - 在 Mongoid 中,Date、Time、DateTime 和 TimeWithZone 字段类型有什么区别吗?

javascript - 轮播内幻灯片的延迟加载内容(内容是 oEmbeds/iframes)

ruby - 使用 'require' 和符号链接(symbolic link)时的路径问题

ruby - 如何从另一个 .rb 文件(如 PHP 中)中获取 "require"代码?

matlab - 从子目录递归读取图像

linker - 如何使用cmake查找库?

javascript - rails : JS Controller Being Called Twice for Some Reason

javascript - 在 NodeJS 的 required() 所需的脚本内使用函数

git - 将子域绑定(bind)到没有 apache 的目录(可通过 ssh 获得)