Rails странная сортировка ассоциаций - PullRequest
0 голосов
/ 06 марта 2011

У меня есть две модели в ассоциации habtm (Round и User). Я хочу собрать всех пользователей и отсортировать тех, которые относятся к определенному раунду (current_round), в начало.Однако я не хочу отказываться от других пользователей, все они должны быть в результирующем массиве.

1 Ответ

0 голосов
/ 06 марта 2011

Так как пользователь принадлежит к раунду, вы можете попробовать пользователей LEFT JOIN Rounds следующим образом:

User.all(:joins => "LEFT JOIN rounds ON user.round_id = rounds.id",
         :order => "rounds.id DESC")

Это должно охватить всех пользователей, принадлежащих к определенному раунду, а также всех пользователей, которые вообще не принадлежат ни к какому раунду, которые будут внизу или вверху в зависимости от того, как вы заказываете rounds.id (ASC или DESC).

...