新手问题 rails 的调试你们怎么做的。

bydmm · 2013年04月25日 · 最后由 heshiweij 回复于 2022年08月05日 · 7222 次阅读

用过 rails c 但是感觉不够。 ROR 有没有 php 类似 var_dump 的函数? 现在不知道 rails 怎么打断点,也不知道怎么将需要的信息输出出来 请问一下 debug 的信息是输出到最终的 web 页面(类似 PHP 的 var_dump) 还是输出到 rails s 的命令行中间?还是别的什么方法?

靠测试啊。

#1 楼 @Rei 我刚才试过了一个 pp 貌似可以输出到 rails s 里

logger.debug

查看了一下 var_dump 发现这个东西是把变量显示到页面上,Rails 有类似的东西,叫做 debug

http://api.rubyonrails.org/classes/ActionView/Helpers/DebugHelper.html#method-i-debug

#4 楼 @lgn21st debug 只能在 view 里用

正在尝试用 thin 和 pp 组合 thin 不显示无关的信息 pp 输出结果。

raise

哈哈哈

用 pry 啊,然后在调试的断点处 binding.pry

@KoALa +1 果断 pry,用 binding.pry 打断点,程序运行到了那里自动进入 console,配合 pry 对 console 的增强功能(比如 show-method 显示某方法的源码),非常犀利。gem 代码也可以这样跟。

pp puts binding.pry logger.info

如果希望简单的输出对象 1.9.3+rails 3.2 的话你可以这么做 https://github.com/jasl/a_rails_start_up_omakase/blob/master/config/environments/development.rb#L47 然后你便可以在任何位置使用y var的方式将对象输出到控制台 不过一个问题是不能输出匿名对象

我是这样的: guard + rspec + pry(其实 guard 自带的) 先写测试,然后写实现,搞着搞着就通过了, 要是实在出问题弄不明白就加断点看…… vim 设个快捷键插入 binding.pry

虽然我知道如果我说:我觉得 Rubymine 很好用看起来很不专业,但我是真的觉得 Rubymine 的 IDE 类型的断点调试比 pry 强多了……

#16 楼 @ericguo 是挺好用的,只是觉得界面有点丑...然后就放弃了...

#16 楼 @ericguo 的确如果愿意用 IDE 的话,rubymine 的断点调试还算不错。

@hisea 太棒了,这就是我要找的!!!大神永远是低调的

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