Я использую следующий запрос 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-запрос?
Лучше для сортировки в базе данных или после ее перетаскивания?
это странно. где вы получили эквивалент sql? Попробуйте вызвать '.to_sql', чтобы увидеть, что запрос переводит на sql. – jvnill
Определенно лучше разгрузить сортировку в базу данных. Это одна из вещей, которые ActiveRecord делает для вас, не имея необходимости писать фактический SQL. – depa
Вы вытаскиваете полученный sql из своего общего журнала запросов? –