有没有办法找出方法包含在 Ruby / Ruby on Rails 中的位置?
例如,通过搜索Rails API,我知道:
link_to
来自ActionView::Helpers::UrlHelper
,并且pluralize
来自ActionView::Helpers::TextHelper
但是有没有办法在 Ruby 本身中找出答案?即在irb
,或Rails 控制台?
有没有办法找出方法包含在 Ruby / Ruby on Rails 中的位置?
例如,通过搜索Rails API,我知道:
link_to
来自ActionView::Helpers::UrlHelper
,并且 pluralize
来自ActionView::Helpers::TextHelper
但是有没有办法在 Ruby 本身中找出答案?即在irb
,或Rails 控制台?
是的:
@object.method(:method_name)
例如:
@object.method(:pluralize)
无论您身处何种环境,都可以使用以下方法获取源位置:
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.