2013-07-25 117 views
2

我一直在面對一個奇怪的問題,其中ActiveRecord查詢沒有得到登錄終端,或在Rails控制檯(使用ActiveRecord::Base.logger = Logger.new(STDOUT))。ActiveRecord SQL查詢沒有被記錄

這是我得到的異常:

Could not log "sql.active_record" event. NameError: undefined 
local variable or method `s' 
for # ActiveSupport::Notifications::Event:0x007f9ae02a60c0. 

我嘗試了幾件事,包括重新安裝滑軌,但無濟於事。

除了想知道爲什麼會發生這種情況,我無法檢查針對數據庫發起的實際SQL查詢。

+0

當通過錯誤的名稱引用變量時,我收到了同樣的錯誤('undefined local variable或method')。即將其聲明爲'$ s',然後嘗試並以's'訪問。 – DMK

+0

@Akhil:在這裏發佈整個ruby代碼,這將有助於調試。 – vamosrafa

+1

「未定義的局部變量或方法...」表示您正在調用給定對象上無法識別的方法。某處,某些代碼正在調用'some_event.s'。 Rails不太可能存在那樣的錯誤,因此您可能會意外地在某處輸入了'.s'。或者也許原因更復雜。如果沒有更多信息,我無法確定問題代碼的位置。例外是否給出了一個帶有文件名和行號的堆棧跟蹤? –

回答

0

此問題已解決它由於雜散(和意外)「S」被插入在instrumenter.rb文件。刪除角色幫助我解決了這個問題。我不確定爲什麼重新安裝導軌沒有幫助我。

1

我碰到類似的事情。

我能夠通過添加

# config/environments/development.rb 
config.logger = Logger.new(STDOUT) 

# config/environment.rb 
# To prevent log buffering 
$stdout.sync = true