什么是加载某个模块? (的ActiveResource)

时间:2011-11-10 16:19:19

标签: ruby-on-rails ruby

简短版本:如何确定哪个文件或gem需要某个文件

再长一点......

我有一个Rails 3.0.3 / mongoid应用程序,所以我没有使用ActiveRecord。我的application.rb文件的顶部如下所示:

require File.expand_path('../boot', __FILE__)

#require 'rails/all'
require "action_controller/railtie"
require "action_mailer/railtie"

但是在加载rails后,如果我进入控制台并输入:

defined?(ActiveRecord::Base)
#=> "constant"

我希望它是nil

所以我的一个宝石必须加载ActiveRecord。

如何确定哪个gem或文件需要ActiveRecord?

2 个答案:

答案 0 :(得分:0)

好的,我找到了一种方法,但不确定它是最好的:

由于我使用的是bundler,我只是在bundler需要该文件后添加了一个断点,然后检查文件是否已加载。

我在Bundler::Runtime#require行的Kernel.require添加了断点。

如果有更优雅的方式,请加入。

答案 1 :(得分:0)

如果您查看Gemfile.lock,就可以确定哪些宝石将ActiveRecord作为依赖项。