sql - 使用Rails 4在日志中显示SQL查询

标签 sql ruby-on-rails ruby-on-rails-4

我通过终端“ Terminator”和shell“ Fish Shell”在Ubuntu 14.04上将Ruby 4.2.1和Thin 1.6.2与Rails 4.0.4一起使用。

在开发模式下启动Rails服务器时,日志中没有SQL查询,仅加载了JS和HTML文件。

我正在寻找类似的东西:

User Load (3.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 3 ORDER BY "users"."id" ASC LIMIT 1
(2.0ms)  SELECT COUNT(*) FROM "users" WHERE (driver_register_state_cd = -2)

最佳答案

rails控制台从不写入日志文件,但是您可以很轻松地实现它,例如,如果在启动rails控制台后执行以下操作

ActiveRecord::Base.logger = Logger.new STDOUT


rails将所有SQL语句记录到stdout,从而在终端中显示它们。并且由于Logger.new接受任何流作为第一个参数,因此您可以让它写入rails development.log:

ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')

关于sql - 使用Rails 4在日志中显示SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397341/

相关文章:

python - 超大表的数据库解决方案

javascript - 限制 Rails 循环中的 collection_check_boxes 选择

ruby-on-rails - 如何忽略 Rails 中的路线?

sql - 选择至少匹配 n 个条件中的 n-1 个的所有记录

sql - 将主键更改为复合主键

sql - 如何解决Golang中的错误 "ORA-00911: invalid character"?

ruby-on-rails - 如何发送通知用户收到私有(private)消息

ruby-on-rails - 内部联接上的 Rails ActiveRecord 子查询

ruby-on-rails - 将 cache_digests 与 XML 构建器一起使用?

ruby-on-rails - 具有血统的动态选择