我正在为我的rails 3应用程序编写规范.我想测试db事务是否真的有效.如果能够在我的应用程序中看到由规范驱动生成的sql查询,那将非常有帮助.

有没有办法像在rails控制台中一样查看查询?

我正在使用Rails 3.0.9、RSpec 2.6和sqlite(稍后将迁移到mysql)

推荐答案

把这个放在你的规格里:

ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?(ActiveRecord::Base)

你可以看tail -f log/test.log,看看发生了什么.其中一个,但不是两个.

编辑Rails 5.2,添加以下行:

ActiveRecord::Base.verbose_query_logs = true

感谢Mike Monteiro的更新!

Ruby-on-rails相关问答推荐

Rails:嵌套命名空间产生一个奇怪的部分路径,导致MissingTemplate错误

Gemfile需要较新版本的依赖项

如何从 Rails7.2 中的控制器获取名称空间?

创建大哈希的 Ruby 方法

带有块捕获的 FormBuilder 辅助方法在 ERB 中不起作用

如何使用 activerecord activerecord-session_store 在 Rails 应用程序中使用 cookie 值在数据库中查找会话记录

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

heroku 推送错误:无法检测到 rake 任务

在哈姆尔与当地人进行局部渲染?

attr_accessible(*attributes) 和 attr_protected(*attributes) 有什么区别?

耙路由错误缺少:路由定义上的操作键

rails 模型 has_many 本身

为什么我要使用 unicorn 或 thin 而不是 WEBrick 用于开发目的?

在 ruby​​ 中构建公钥时,是什么导致既不是 PUB key 也不是 PRIV key::nested asn1 错误?

导轨链接到:远程

控制器 helper_method

我们如何在 Rails Mailer 中设置邮箱发件人的名称?

我怎样才能看到水豚在失败的黄瓜步骤中发现了什么?

让 bundler 为不同的平台使用不同的 gem

在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?