查看irb中定义符号的位置

Vla*_*ala 5 ruby ruby-on-rails irb

我正在开展一个非常大的铁路项目.有时我需要寻找类/常量定义.Ruby中有一些内置的方法可以帮我吗?例:

irb> SOME_CONSTANT.__file__
=> /some/path/to/a/file
Run Code Online (Sandbox Code Playgroud)

Yen*_*rst 2

这并不完全是您正在寻找的内容,但方法确实有一个 .source_location 方法。您可以使用它来找出类的实际实现位置。(由于 ruby​​ 允许您重开课程,因此这可能在多个地方)

例如,给定一个对象的实例i

i.methods.map do |method_name| 
  method_obj = i.method(method_name)
  file, line = method_obj.source_location
  file #map down to the file name
end.uniq
Run Code Online (Sandbox Code Playgroud)

将为您提供实现i方法的所有文件的列表。

这适用于至少有 1 个用 ruby​​ 实现的方法的类。但它不适用于常量。