2016-09-21 84 views
0

我在我的應用程序中使用了tiny_tdsactiverecord-sqlserver-adapter寶石。每次我打電話查詢時,都會添加ORDER BY [object].[id]爲什麼Rails在我的ActiveRecord查詢中添加ORDER BY?

School.limit(15)

EXEC sp_executesql N'SELECT [schools].* FROM [schools] WHERE [schools].[is_all_star_team] = 0 ORDER BY [schools].[id] ASC OFFSET 0 ROWS FETCH NEXT 15 ROWS ONLY'

當通過SSMS測試我的疑問,似乎有和沒有通過是完成時間相當顯著不同的順序。我不知道如何刪除它,雖然它是沒有必要的。

回答

0

您是否碰巧在學校模型中設置了默認範圍?如果是這樣,這可能是罪魁禍首,因爲它將應用於所有ActiveRecord調用,即使是簡單的如限制。

+0

我呢,有沒有辦法讓默認範圍沒有添加順序? – daveomcd

+0

您的默認範圍是否有訂單方法調用?如果是這樣的話,你可以這樣做:School.unscoped.limit(15)忽略調用的範圍。 [這是一個鏈接到無人機的文檔](http://apidock.com/rails/ActiveRecord/Base/unscoped/class) – kylekeesling