ruby-on-rails - 在运行时,如何检查从哪里加载模块或类?

标签 ruby-on-rails ruby ruby-on-rails-3.1 irb pry

我有一个遗留的 Rails 应用程序,在全局命名空间中有很多有趣的(无用的)模块和类。我想知道使用 rails c 需要哪些文件或 gem。

我知道它存在于方法:.source_location__line____file__ 和调用者对象,但它似乎与确定来源无关一个类或一个模块。

有什么想法吗?谢谢!

使用:

  • ruby 1.9.2
  • pry 动
  • rails 3.1.1

最佳答案

你不能直接为类/模块找到它——但是如果你查看类/模块上定义的方法,你可以找到它们的定义位置——通过代理,这也是类/模块的定义位置定义了模块。

Pry你可以去:

[3] (pry) main: 0> stat Set#initialize
Method Information:
--
Name: initialize
Owner: Set
Visibility: private
Type: Unbound
Arity: -1
Method Signature: initialize(enum=?, &block)
Source Location: /Users/john/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/set.rb:67

看看上面的最后一项。

关于ruby-on-rails - 在运行时,如何检查从哪里加载模块或类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053558/

相关文章:

仅包含在单页 Rails 中的 CSS 文件不适用于服务器

ruby-on-rails - 我可以在 application_helper.rb 中使用其他辅助方法吗?

ruby - 如果字符串包含数组中包含的一个或多个值,则替换字符串

css - rails 3.1 link_to image_tag 其中图像数据作为字符串嵌入

ruby-on-rails - ActiveRecord::Relation 的未定义方法 `update_attribute'

ruby-on-rails - 设计人员使用 Rails 3.1 资源管道的最佳工作流程是什么

html - 调试信息显示为页脚的一部分并且只显示一行? Michael Hartl 的 Ruby on Rails 教程第 7 章

ruby-on-rails - 在 Ruby 中将日期定为十年的第一年

ruby - ruby 中的 "set"关键字是什么意思?

python - 在新的Apple Silicon架构上运行Ruby,Node,Python和Docker?