2015-10-06 2 views
0

У меня есть модель магазина, который имеет много пользователей:Rails: Получение коллекции ActiveRecord вместо массива

Shop.rb

def active_users 
    users.where(status: "active").reverse 
    end 

В настоящее время, когда я называю some_shop.active_users, я получаю массив пользовательские объекты. Но возможно ли получить коллекцию пользователей ActiveRecord?

+0

Он превращается в массив, потому что вы вызываете на нем метод '' reverse'', который является методом массива. Обратное неверно здесь, так как вы никогда не можете быть уверены в порядке, в котором db возвращает значения, если вместо этого вы не назовете '' order'', который превращается в '' order'' в SQL-заявлении. потому что '' order'' является активным методом записи, вывод его не будет массивом. – AOG

ответ

1

Это ленивое переплетение. Это будет массив при доступе к нему. Попробуйте по телефону active_users.to_a

+0

Есть ли способ сохранить его или изменить его на коллекцию ActiveRecord? –

+0

Я пытаюсь использовать метод paginate, который работает только с коллекциями. –

+0

Так разработан ActiveRecord. Что именно не работает для вас? С ним будет работать разбиение на страницы. – Zepplock

Смежные вопросы