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]

その後、Rails ソースに移動して、そのファイルを検索できます。ヒント: Github で「t」と入力し、入力を開始します。そのファイルが表示され、Time クラスで直接定義されていることがわかります。

于 2012-04-25T23:14:55.970 に答える