2012-02-01 55 views
0

我正在尝试在每个页面请求上可视化/理解我的Rails应用程序层次结构。我认为也许puts caller会做的伎俩,但我不想通过Rails框架本身高度详细的跟踪。打印一个应用程序内vs完整的堆栈跟踪?

我只是主要想要在我自己的Rails应用程序中的依赖脚本,我基本上可以控制它。我可以(不准确地)说我想要的,当发出请求时,在控制台中它会打印出被调用的根脚本,然后它的所有链接直到最后一个视图erb/haml,等

我怎么能做到这样的事情,而不是在我的Rails应用程序中的每个文件中的每个文件的头部和尾部放置一个puts语句?

如果我插入一个puts "-> #{File.expand_path(File.dirname(__FILE__))}/#{File.basename(__FILE__)}"到每个Rails应用程序的文件,可以或多或少地完成我试图去,但会沿着这个“Show full path name of the ruby file when it get loaded”东西线更适当地做的伎俩,而无需修改各种文件;保持干爽?

回答

0

您可以通过检查文件名来过滤Kernel#caller的输出。如果它在你的项目目录中,然后打印它。否则,忽略。

+0

我也想到了这一点,但据我了解,如果该进程已经弹出进入助手并返回,它不会显示。我试图从头到尾了解一个请求的整个范围,这样我就知道在这个帮助器之前调用了这样一个文件,然后执行了这个控制器,然后这样和那样的视图文件等。 – ylluminate 2012-02-01 18:37:45

+0

并奖励你点,即使我们的讨论是在另一个线程中以更有意义的方式进行:http://stackoverflow.com/questions/9103412/how-to-overload-kernelload/9103466 – ylluminate 2012-02-02 03:34:48

+0

@ylluminate谢谢:) – 2012-02-02 03:35:34