0

我正在使用以下 ActiveRecord 查询,但我不确定这是否是正确的做事方式。

我有一个模型需要过滤和排序。

Match.where("host_id = #{self.id} OR guest_id = #{self.id}").order('week asc')

然后将其翻译为:

SELECT "matches".* FROM "matches" WHERE (host_id = 1 OR guest_id = 1).

这让我相信排序不是在数据库级别完成的。

有没有一种方法可以强制它在数据库级别进行排序,而无需编写显式 SQL 查询?

排序是在数据库中进行还是在它被拉过来之后进行?

4

1 回答 1

0

使用 sort / sort_by 方法或尝试 Match.where("host_id = #{self.id} OR guest_id = #{self.id} ORDER BY week ASC") 使用 .to_sql

于 2013-03-29T07:25:20.693 回答