如何在终端Rack APP中显示所有ActiveRecord SQL查询

时间:2016-06-16 01:57:39

标签: ruby activerecord rack

我正在使用Rack + ActiveRecord + Grape API。

运行API时,如何在终端中显示所有ActiveRecord SQL查询以及日志文件?

我在ActiveRecord::Base.logger = Logger.new(STDOUT)中尝试了config.ru,但它只显示了一个SQL查询。

我的API

module V1
  class DemoAPI < Grape::API
    resource :demo do
      desc 'Demo API'
      get '/' do
        User.first
        User.all
        { demo: 'Welcome' }
      end
    end
  end
end

文件 config.ru

ActiveRecord::Base.logger = Logger.new(STDOUT)

当我运行rackup并向API发出请求时,我明白了:

rackup
[2016-06-12 23:09:45] INFO  WEBrick 1.3.1
[2016-06-12 23:09:45] INFO  ruby 2.2.4 (2015-12-16) [x86_64-darwin15]
[2016-06-12 23:09:45] INFO  WEBrick::HTTPServer#start: pid=1442 port=9292
D, [2016-06-12T23:09:48.682742 #1442] DEBUG -- :   User Load (1.6ms)  SELECT  "users".* FROM "users"  ORDER BY "users"."id" ASC LIMIT 1
::1 - - [12/Jun/2016:23:09:48 +0700] "GET /api/v1/demo HTTP/1.1" 200 19 0.0931

ActiveRecord SQL查询只显示User.first,而不显示User.all

我还想在日志文件中包含ActiveRecord SQL查询。

1 个答案:

答案 0 :(得分:0)

ActiveRecord :: Base.logger = Logger.new(STDOUT) 但不是在config.ru。

在控制台中运行它:)