首页 文章

在Ruby中有一种方法可以告诉定义方法的位置吗?

提问于
浏览
7

在Ruby中有一种方法可以告诉定义方法的位置吗?我正在浏览ruby-guides,并且有一行代码读取 Post.all 如何判断 all 的定义?

2 回答

  • 7

    如果您想知道定义方法的文件和行,请使用

    Post.method(:all).source_location
    

    如果它是C方法,它会给你 [file, line]nil .

  • 17

    可以通过Method对象使用方法 . 在那一点上作为 owner 属性 . 所以你可以这样做:

    puts Post.method(:all).owner
    

    这将告诉您定义方法的模块/类 .

相关问题