Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有没有办法在rails中以编程方式查看(或打印)方法定义?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on 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中并不常见 我也不想使用元(反射)

假设我在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类中。啊!我会删除我的答案,抱歉误传。