2014-03-25 25 views
0

我遇到了一個相當奇怪的問題。我有以下的測試在我的路線之一:Sinatra應用程序(可能)調用數據庫兩次

error 404 unless Agreement.find_by(agreement_id: params[:agreement_id]) 

這是一個active record模型,我只是使用提供find_by方法。當我檢查日誌,這是輸出:

D, [2014-03-25T09:40:06.207120 #5956] DEBUG -- : Agreement Load (0.1ms) SELECT "agreements".* FROM "agreements" WHERE "agreements"."agreement_id" = '<id>' LIMIT 1 
127.0.0.1 - - [25/Mar/2014:09:40:06 +0100] "HEAD /agreements/<id> HTTP/1.1" 204 0.0142 
D, [2014-03-25T09:40:06.216059 #5956] DEBUG -- : Agreement Load (0.2ms) SELECT "agreements".* FROM "agreements" WHERE "agreements"."agreement_id" = '<id>' LIMIT 1 

所以,在我看來,兩兩件事正在發生的事情:要麼數據庫稱爲兩次(壞的),或者它只是被記錄兩次(然而,這似乎並不是這種情況,因爲查詢顯然不是以相同的速度運行(0.1ms與0.2ms))。

任何幫助將不勝感激。

回答

0

事實證明,該應用程序確實被調用了兩次,但這是由於錯誤的中間件代碼兩次調用了@app.call

相關問題