Ruby on rails 如何从服务器控制台获取SQL输出并在服务器';s rails控制台,在rails 4中?
因此,我希望能够在rails控制台中从rails服务器日志中重现如下错误: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
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代码中,是的,但这不是我感兴趣的。我已经修好了。