如何在Ruby on Rails中执行期间确定控制器变量的值?

Bre*_*nt 8 ruby variables debugging ruby-on-rails

在执行期间确定控制器变量值的最佳方法是什么?

例如,有没有办法可以在代码中插入一个中断,并将变量的值输出到屏幕(或日志)?

Jor*_*ter 11

是.最简单的方法是将值提升为字符串.像这样:raise @foo.to_s

或者,您可以安装调试器(gem install ruby-debug),然后使用--debugger标志启动开发服务器.然后,在您的代码中,调用该debugger指令.

在调试器提示符中,您有许多命令,包括p打印变量的值.

更新:这里有关于ruby-debug的更多信息.


Joh*_*ley 6

如果您有一个名为的控制器实例变量@foo,那么在您的控制器中,您可以执行以下操作:

logger.debug "@foo is: #{@foo}"
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用以下方法在视图模板中输出值:

<%= debug @foo %>
Run Code Online (Sandbox Code Playgroud)


Jar*_*ryl 5

我更喜欢使用这样的检查方法:

raise @foo.inspect
Run Code Online (Sandbox Code Playgroud)

它具有比to_s更多的信息,如属性值.