在执行期间确定控制器变量值的最佳方法是什么?
例如,有没有办法可以在代码中插入一个中断,并将变量的值输出到屏幕(或日志)?
是.最简单的方法是将值提升为字符串.像这样:raise @foo.to_s
或者,您可以安装调试器(gem install ruby-debug
),然后使用--debugger
标志启动开发服务器.然后,在您的代码中,调用该debugger
指令.
在调试器提示符中,您有许多命令,包括p
打印变量的值.
更新:这里有关于ruby-debug的更多信息.
如果您有一个名为的控制器实例变量@foo
,那么在您的控制器中,您可以执行以下操作:
logger.debug "@foo is: #{@foo}"
此外,您可以使用以下方法在视图模板中输出值:
<%= debug @foo %>
我更喜欢使用这样的检查方法:
raise @foo.inspect
它具有比to_s更多的信息,如属性值.