ActiveRecord не показывает правильные записи - PullRequest
0 голосов
/ 31 октября 2011

В Rails 3, когда я пишу:

@users = User.limit(10).sort_by(&:name)

это дает мне 10 пользователей в порядке имен, но не первые 10 в алфавитном порядке, как я хочу. Что я делаю не так?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 31 октября 2011

Попробуйте:

@users = User.limit(10).order('name ASC')

1 голос
/ 31 октября 2011

Метод sort_by от Enumerable.Таким образом, для вызова sort_by ActiveRecord должен извлечь записи из базы данных;ActiveRecord сначала сделает это:

User.limit(10)

, чтобы получить десять записей из базы данных, а затем эти записи будут отсортированы (в Ruby) по их именам.В результате записи будут извлечены из базы данных до их сортировки.

Решение состоит в том, чтобы прослушать Alex Peattie и использовать метод order.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...