有沒有辦法從Ruby/Ruby on Rails中的方法中找到方法?Ruby/Rails - 從哪裏來的方法被包括在內?
例如,從搜索Rails API我知道:
link_to
來自ActionView::Helpers::UrlHelper
,和來自ActionView::Helpers::TextHelper
pluralize
但是有沒有找出在Ruby中的方式本身?即在irb
或Rails控制檯中?有沒有辦法從Ruby/Ruby on Rails中的方法中找到方法?Ruby/Rails - 從哪裏來的方法被包括在內?
例如,從搜索Rails API我知道:
link_to
來自ActionView::Helpers::UrlHelper
,和來自ActionView::Helpers::TextHelper
pluralize
但是有沒有找出在Ruby中的方式本身?即在irb
或Rails控制檯中?你在你不管上下文可以通過使用獲得的源位置:
obj.method(:method).source_location
它不會放棄你正是你想要的,但Rails核心開發人員對正確命名空間的事情很好。下面的例子可以從軌控制檯上運行:
Time.method(:zone).source_location
["/Users/pete/.rvm/gems/[email protected]/gems/activesupport-3.2.3/lib/active_support/core_ext/time/zones.rb", 9]
然後你可以去Rails source和搜索該文件。提示:在Github上輸入't'並開始輸入。它會帶你到that file,你可以看到它直接在Time類上定義。
是:
@object.method(:method_name)
例如:
@object.method(:pluralize)
您可能也想閱讀本文:http://stackoverflow.com/questions/3393096/how-can-i-get-source-code-of-a-methods-dynamically-and-also-which-file -is-this-m – Casper 2012-04-25 22:50:06
而這個:http://stackoverflow.com/questions/175655/how-to-find-where-a-method-is-defined-at-runtime – Casper 2012-04-25 22:51:28