Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么是加载某个模块?(活动资源)_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 什么是加载某个模块?(活动资源)

Ruby on rails 什么是加载某个模块?(活动资源),ruby-on-rails,ruby,Ruby On Rails,Ruby,简短版本:如何确定哪个文件或gem需要某个文件 再长一点 我有一个Rails 3.0.3/mongoid应用程序,所以我不使用ActiveRecord。my application.rb文件的顶部如下所示: require File.expand_path('../boot', __FILE__) #require 'rails/all' require "action_controller/railtie" require "action_mailer/railtie" 但是在rails加

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

再长一点

我有一个Rails 3.0.3/mongoid应用程序,所以我不使用ActiveRecord。my 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?

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

因为我使用的是bundler,所以我只是在bundler需要文件后添加了一个断点,然后检查文件是否已加载

我在
内核.require
行的
Bundler::Runtime#require
中添加了断点


如果有更优雅的方法,请插嘴。

好的,我想出了一个方法,但不确定这是最好的:

因为我使用的是bundler,所以我只是在bundler需要文件后添加了一个断点,然后检查文件是否已加载

我在
内核.require
行的
Bundler::Runtime#require
中添加了断点


如果有更优雅的方法,请插话。

如果你查看你的
Gemfile.lock
,你可以找出哪些gem有ActiveRecord作为依赖项。

如果你查看
Gemfile.lock
,你可以找出哪些gem有ActiveRecord作为依赖项。

谢谢——有依赖项是不够的。许多gem对它们的测试套件具有依赖性,但在标准使用需要时不加载它们。另一方面,有些时候依赖关系没有声明,它们仍然需要文件尽管我应该补充,这应该是你应该首先查看的地方——这通常会帮助你我可能错了,但我不认为gems的测试依赖关系会出现在
Gemfile.lock
(否则,每个gem将取决于rspec或测试单元)。虽然gem可能需要gem中的文件,但它没有指定为依赖项,这是一种可怕的做法。谢谢——拥有依赖项是不够的。很多gem的测试套件都有依赖项,但在标准使用需要时不加载它们。另一方面,有时没有说明依赖项,并且ey仍然需要该文件尽管我应该添加,但这应该是您应该首先查看的地方——这通常会对您有所帮助我可能是错的,但我不认为gem的测试依赖项会出现在
Gemfile.lock
(否则每个gem都将依赖于rspec或测试单元)。虽然gem可能需要gem中的文件,但它没有指定为依赖项,这是一种可怕的做法。