Ruby on rails 如何从服务器控制台获取SQL输出并在服务器';s rails控制台,在rails 4中?

Ruby on rails 如何从服务器控制台获取SQL输出并在服务器';s rails控制台,在rails 4中?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,因此,我希望能够在rails控制台中从rails服务器日志中重现如下错误: D, [2015-06-30T13:41:57.442121 #3] DEBUG -- : (1.0ms) BEGIN D, [2015-06-30T13:41:57.444003 #3] DEBUG -- : SQL (1.1ms) INSERT INTO "tracking_browsers" ("campaign_id", "channel_id", "browser_id", "hits") VAL

因此,我希望能够在rails控制台中从rails服务器日志中重现如下错误:

D, [2015-06-30T13:41:57.442121 #3] DEBUG -- :    (1.0ms)  BEGIN
D, [2015-06-30T13:41:57.444003 #3] DEBUG -- :   SQL (1.1ms)  INSERT INTO "tracking_browsers" ("campaign_id", "channel_id", "browser_id", "hits") VALUES ($1, $2, $3, $4) RETURNING "id"  [["campaign_id", 6], ["channel_id", 3], ["browser_id", 4], ["hits", 1]]
D, [2015-06-30T13:41:57.446468 #3] DEBUG -- :    (2.0ms)  COMMIT
D, [2015-06-30T13:41:57.449973 #3] DEBUG -- :   Unit Load (1.3ms)  SELECT "units".* FROM "units" WHERE "units"."campaign_id" = $1 AND "units"."unit_media_id" = $2  [["campaign_id", 6], ["unit_media_id", 2]]
NoMethodError: undefined method `/' for nil:NilClass
理想情况下,我只希望能够复制粘贴此行:

SELECT "units".* FROM "units" WHERE "units"."campaign_id" = $1 AND "units"."unit_media_id" = $2  [["campaign_id", 6], ["unit_media_id", 2]]
进入一个SQL方法,如
ActiveRecord::Base.connection.execute
,但由于括号的缘故,这似乎不太管用

我知道我可以将$1和$2替换为值6和2,并删除最后的括号,就像这样,但这很麻烦:

ActiveRecord::Base.connection.execute('SELECT "units".* FROM "units" WHERE "units"."campaign_id" = 6 AND "units"."unit_media_id" = 2')

有什么方法可以让我复制过去,而不必手动修改$parameters并删除括号?

为什么不尝试在开发环境中复制呢。可以帮助您找到问题。您有完整的堆栈跟踪吗?看起来问题可能不在SQL查询中,而是在Ruby代码中。NoMethodError在我的Ruby代码中,是的,但这不是我感兴趣的。我已经修好了。