好了,所以它已經有3個令人恐懼的日子,並且我確定它的一些簡單的東西,我似乎無法弄清楚。Rails查詢變成空的,但如果在sql控制檯中被serched,相同的查詢檢索記錄
創建範圍後,我遇到了一個問題,以便在兩天之內返回所有用戶的生日以及其他一些條件。該信息應該呈現給用戶儀表板。
這是什麼讓我困擾,如果我刷新頁面,找到0條記錄。如果我在rails控制檯(開發環境)中運行作用域,它也會返回0條記錄。但是,如果我從控制檯(活動記錄器是)複製查詢並將其直接放入我的sql客戶端,它將返回正確的記錄。這個範圍與其他一些範圍是鏈接的,但是如果我從查詢鏈中刪除這個範圍,查詢就可以工作,它不會過濾出生範圍的日期,就像我希望這個範圍做的那樣。
是的,sql客戶端在同一個數據庫上。
範圍:
where( "(date_of_birth <= ?) OR DATE_ADD(date_of_birth, INTERVAL ? YEAR) BETWEEN ? AND ?", min_age.years.ago.to_date, min_age, beginning_of_month, end_of_month )
查詢:
SELECT
drivers
* FROMdrivers
WHERE((DATE_OF_BIRTH < = '1990年2月5日')OR DATE_ADD (date_of_birth,INTERVAL 23 YEAR) '2013-04-01'和'2013-04-30')AND(drivers.id NOT IN(SELECT driver_id從follow_ups其中TEAM_ID = 2))AND (average_miles_per_day> = 0.35)AND(TRAVEL_TIME < 2000)和 (TRAVEL_TIME +(average_miles_per_day * 84)> = 2000)
時間不限導軌嘗試執行該查詢它不起作用。在sql客戶端執行這個查詢時,它就像一個魅力一樣。
在你的SQL查詢中,你也顯示了一個子查詢,但不是在Rails代碼中。你在你的紅寶石堆棧中運行一個?此外,當您在rails中調用代碼時,您應該能夠在日誌中看到查詢。也許只有當你通過服務器運行rails應用程序時,但它可能會有所幫助。 – agmcleod
是的,還有其他作用域作爲子查詢與上述查詢鏈接在一起。日誌和控制檯都顯示用於執行搜索的查詢。在我對上述問題的描述中,我解釋說我從日誌中複製了查詢(完全是這樣),並在一個返回了正確記錄的sql客戶端中成功執行了查詢。 – n0denine
啊好吧,對不起,我錯過了。想知道是否由於附加的括號或類似的事情而發生了一些條件差異。 – agmcleod