Vla*_*ala 5 ruby ruby-on-rails irb
我正在开展一个非常大的铁路项目.有时我需要寻找类/常量定义.Ruby中有一些内置的方法可以帮我吗?例:
irb> SOME_CONSTANT.__file__
=> /some/path/to/a/file
Run Code Online (Sandbox Code Playgroud)
这并不完全是您正在寻找的内容,但方法确实有一个 .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 实现的方法的类。但它不适用于常量。