Ruby / Rails - 从哪里获得了一个方法?

时间:2012-04-25 22:14:26

标签: ruby-on-rails ruby

有没有办法找出Ruby / Ruby on Rails中包含方法的位置?

例如,通过搜索Rails API,我知道:

  • link_to来自ActionView::Helpers::UrlHelper
  • pluralize来自ActionView::Helpers::TextHelper

但是有没有办法在Ruby中找到它?即在irb或Rails控制台?

2 个答案:

答案 0 :(得分:3)

是:

@object.method(:method_name)

例如:

@object.method(:pluralize)

答案 1 :(得分:1)

无论您在哪种环境中,都可以使用以下方式获取源位置:

obj.method(:method).source_location

它不会完全满足您的需求,但Rails核心开发人员可以很好地正确命名空间。可以从rails控制台运行以下示例:

Time.method(:zone).source_location

["/Users/pete/.rvm/gems/ruby-1.9.2-p290@gemset/gems/activesupport-3.2.3/lib/active_support/core_ext/time/zones.rb", 9]

然后您可以转到Rails source并搜索该文件。提示:在Github上输入't'并开始输入。它会将您带到that file,您可以看到它直接在Time类上定义。