2

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

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

  • link_to来自ActionView::Helpers::UrlHelper,并且
  • pluralize来自ActionView::Helpers::TextHelper

但是有没有办法在 Ruby 本身中找出答案?即在irb,或Rails 控制台?

4

2 回答 2

3

是的:

@object.method(:method_name)

例如:

@object.method(:pluralize)
于 2012-04-25T22:18:33.293 回答
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]

Then you can go to the Rails source and search for that file. Hint: type 't' on Github and start typing. It will bring you to that file and you can see that it is defined directly on the Time class.

于 2012-04-25T23:14:55.970 回答