Ruby on rails 有没有办法在rails中以编程方式查看(或打印)方法定义?
假设我在rails应用程序中定义了一个名为Ruby on rails 有没有办法在rails中以编程方式查看(或打印)方法定义?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,假设我在rails应用程序中定义了一个名为bla的函数 在ruby或rails中是否有一种方法可以动态/编程地打印用于定义该函数的代码?例如: def bla puts "Hi There" end 然后如果我调用一个函数,比如,get\u definition: puts get_definition(:bla) 这会打印出来 "puts \"Hi There\"" 有没有一种规范的方法可以做到这一点?我以前实际上不需要这样做,我知道这在rails中并不常见 我也不想使用元(反射)
bla
的函数
在ruby或rails中是否有一种方法可以动态/编程地打印用于定义该函数的代码?例如:
def bla
puts "Hi There"
end
然后如果我调用一个函数,比如,get\u definition
:
puts get_definition(:bla)
这会打印出来
"puts \"Hi There\""
有没有一种规范的方法可以做到这一点?我以前实际上不需要这样做,我知道这在rails中并不常见
我也不想使用元(反射)编程定义方法,然后存储用于定义方法的字符串。感谢您的帮助 我不知道约翰·海兰德在写什么。没有像
method\source
这样的方法(在纯Ruby中)。实际的解决方案是使用。它有一些方法可以让你访问源代码。重复的优点,似乎是两个问题的重复(奇怪,因为这些问题是彼此的重复)。。。没有一个能真正回答我的问题,也没有一个能在谷歌上“按程序”搜索时找到,否则我会同时找到这两个。但复制品是个好问题。超级感兴趣也看到答案可能重复不确定谁否决了你,但我会尝试使用撬动宝石以及@John Hyland实际上有一个很好的观点,.source_location方法在1.9.2中确实有效。我还没有在1.9中测试.source方法。3@CosminAtanasiu是的,方法#源位置
已经存在很长时间了。正如我所写的,没有像method\source
这样的方法。我使用了1.9.2和1.9.3,但没有这样的方法。现在,我用的是2.0,但没有这样的方法。我会在接下来的几天里回顾它,看看哦,伙计,你完全正确。我实际上是在pry中测试的,它将.source
方法添加到method类中。啊!我会删除我的答案,抱歉误传。