有没有办法在rails中以编程方式查看(或打印)方法定义?

时间:2013-06-25 00:23:07

标签: ruby-on-rails ruby ruby-on-rails-3

假设我的rails应用程序中有一个名为bla的函数。

在ruby或rails中是否有一种方法可以通过它动态地/以编程方式打印代码来定义该函数?例如:

def bla
   puts "Hi There"
end

然后如果我调用一个函数,例如get_definition

puts get_definition(:bla)

这会打印出来

"puts \"Hi There\""

有这样的规范方法吗?我之前并没有真正需要这样做,而且我知道这在rails中并不常见。

我也不想使用元(反射)编程来定义我的方法,然后存储用于定义我的方法的字符串。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我不知道John Hyland在写什么。没有像Method#source这样的方法(在纯Ruby中)。实际的解决方案是使用pry gem。它有让您访问源的方法。