新手问题 关于 rails 的调试

lemayi · 2014年09月09日 · 最后由 bluesky0318 回复于 2019年03月05日 · 3240 次阅读

我是从 php 转到 ruby 的。 在 php 开发中,我经常使用 var_dump,print_r 打印变量进行调试。 直接在 web 页面就显示出变量值。 但是在 rails 中一直不得其法。 所以想问下 rails 里面有没有类似的方法。 能够直接在页面上显示变量值之类的方便调试。 谢谢!

rails 的调试都是用 rails console,实验完了再写代码,连浏览器都不用开的

通常输出 log 是输出到终端(启动 rails server 的终端):

# 控制器里
logger.info @user

需要更详细的信息:

# 控制器里
logger.info @user.inspect

一定要输出到页面就:

<!-- 页面里 -->
<%= @user.inspect %>

确实有很多的不同。 我用 php 直接在 controller 层就可以直接打印变量。 然后直接就显示在页面上了。

非常感谢两位。 特别是 Rei。很实用。 谢谢

在页面中直接打印对象或者变量还有个方法 <%= debug variable_name %>

group :development do
  # For debugger
  gem "pry-rails", "~> 0.3.2"

  gem "pry-debugger", "~> 0.2.2"

  # Quiet assets turn off rails assets log like:
  # Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-11-20 17:05:52 +0800
  gem "quiet_assets", "~> 1.0.2"

  # Better error page for Rails and other Rack apps
  # https://github.com/charliesome/better_errors
  gem "better_errors", git: 'https://github.com/charliesome/better_errors.git'

  # Retrieve the binding of a method's caller. Can also retrieve bindings even further up the stack.
  # better_errors use this to display local variables on error pages
  gem "binding_of_caller"
end

常用配置。

社区真温暖啊~

#7 楼 @Peter 这个社区的优良传统就是从不歧视新手。

感谢各位!!!

匿名 #10 2014年09月10日

用 gem debugger 或 gem byebug , 直接打印 params['id'] 等,又可以像 rails console 一样使用。但不知怎么 Tab 补全

所见即所得。这是最好的调试

Rails 5.0 直接使用 debugger() 即可进入调试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号