假设我正在使用现有的Rails应用程序。分解应用程序的最佳方法是什么?
如果我从 layouts / application.html.erb 开始,我会看到一个或多个<%yield%> 语句。如何轻松地从浏览器中的呈现视图退回到构建产量的底层代码?即:不读取每个视图中的代码。
这不是我在这个问题中寻找的东西,但它可能会帮助其他人在Rails上寻求帮助。我有一段时间一直在使用 rails-footnotes gem。它为页面添加了一个页脚,它有各种有用的信息:实例变量,视图信息甚至是带有时序的SQL语句。
gem'trail-footnotes'来安装
答案 0 :(得分:2)
如果调试器太复杂,并且您正在寻找更多的跟踪文件,则可以使用默认的日志记录输出。例如,在发出请求时,默认情况下会输出类似于以下内容的输出:
Started GET "/login" for 127.0.0.1 at 2012-11-27 17:52:16 -0600
Processing by SessionsController#create as HTML
Rendered sessions/create.html.erb within layouts/application (1.0ms)
Rendered application/_header.html.erb (1.0ms)
Rendered application/_wrapper.html.erb (54.0ms)
Completed 200 OK in 150ms (Views: 150.0ms | ActiveRecord: 0.0ms)
如您所见,输出包含已访问的控制器和操作(SessionsController#create
),以及为请求呈现的各种部分(例如Rendered sessions/create.html.erb within layouts/application
)。 / p>
如果您正在寻找简单性和调试器复杂性之间的东西,您可能希望尝试类似rack-bug或mini-profiler(railscast)的内容。
您可能正在寻找的只是一个好的IDE。一些铁路专家可能会嘲笑使用IDE的想法,但我认为它们可以为新手和专家提供许多优势。在您的情况下,您可能会受益于能够轻松设置一个beakpoint,并在执行时直观地单步执行代码,并检查整个过程中的变量内容。我真的很喜欢RubyMine,并且会毫无保留地推荐它(不是免费的,但是免费试用,完全值得花费)。
答案 1 :(得分:1)
您可以使用ruby调试器。
假设您使用的是Ruby 1.9.3(如果您不使用,请回复),您需要执行以下操作:
gem 'debugger'
bundle
debugger
放在要停止执行代码的位置。现在通过浏览器点击你的应用程序并查看启动服务器的位置,你应该看到调试提示。
您可能必须以调试模式启动服务器,执行操作如下:
rails server --debugger
答案 2 :(得分:1)
如果只想在要破解的代码中添加raise Exception
,那该怎么办呢?这将生成堆栈跟踪。
这是一个非常粗糙的解决方案 - 我倾向于使用@BradWerth建议的记录器 - 事实上,只需Rails日志就足够了。调试器在某些你真正需要深入挖掘的情况下非常有用,但根据我的经验,设置和使用它是一种巨大的痛苦: - )