bri*_*gge 6 ruby debugging erb rhtml
目前,当我在 erb 模板(用于 HTTPServer/cgi)上遇到错误时,我会执行以下操作:
调用堆栈似乎与我的 .rhtml 文件中的任何内容都不对应。
(erb):6:in `block in <main>'
/opt/local/lib/ruby/1.9.1/erb.rb:753:in `eval'
/opt/local/lib/ruby/1.9.1/erb.rb:753:in `result'
bin/correct.rb:45:in `block in <main>'
/opt/local/lib/ruby/1.9.1/webrick/httpservlet/prochandler.rb:26:in `call'
Run Code Online (Sandbox Code Playgroud)
小智 7
不确定这是否适用于这个问题,但也许它会帮助某人。我正在使用 rails 5,如果你把
<% debugger %>
Run Code Online (Sandbox Code Playgroud)
在您的 html.erb 文件中,它将暂停运行 Rails 服务器的终端窗口。从那里您可以调试 html.erb 文件具有的任何参数或变量。
正如 Daniel 所说,大多数时候错误信息会帮助您快速找到错误所在。
确实有一些情况不是这样。
进行二进制搜索的更笨、更快的方法是插入错误的行,例如
<%= the_error_is_after_this_line %>
Run Code Online (Sandbox Code Playgroud)
然后移动该行,直到找到确切的行。
我不是那些每次可以编写大量行的聪明的程序员之一;我通常通过小步骤进行开发,每次都在浏览器上重新加载页面。
也就是说,避免难以调试视图(或方法,或其他)的更好方法是编写简单、简短的视图。我的经验法则是我必须能够在编辑器窗口中读取整个视图(或方法),除非它只是纯 html。
始终使用助手和局部视图。你能在你的 erb 视图的一行中计算两个以上的 () 或 [] 吗?如果是,请使用助手。
在你的视野中,你能数出两个或三个以上的街区吗?使用一些部分。