2013-05-29 3 views
0

У меня есть система, которая имеет Blog, BlogEntry и категорию. В категории есть много блогов, а BlogEntry принадлежит блогу.Получить последние последние данные из каждой категории

У меня есть страница, на которой отображаются последние записи в блоге. Я бы хотел получить последние (например, 5 последних) записей в блогах по каждой категории, поэтому в любой момент времени на главной странице будет одинаковая доля категорий (мода и «розовые блогеры» публикуют много. Два раза в день на минимум!)

Это приложение Rails и использует каминари для разбивки на страницы, поэтому я, очевидно, предпочел бы решение, поддерживающее kaminari (возвращаемое activerecord :: отношение).

Я ищу что-то вроде этого: Retrieve 2 last posts for each category. Но рельсы/ActiveRecord spesific. Я мог бы взять sql из этого ответа и сделать его подходящим для моей схемы базы данных, но я думаю, что он вернул бы массив, а не ActiveRecord :: Relation.

Является ли то, что я ищу, возможно даже?

Любая обратная связь с благодарностью. :)

+0

Почему вам нужно вернуть область действия, если вы показываете только определенное количество результатов? вам не нужно будет разбивать страницы на них. –

ответ

0

Вы можете использовать именованные области для фильтрации блогов на основе их публикации.

scope :recent, lambda { where('created_at >= ?', Time.current) } 
scope :recent, lambda { order("created_at DESC") } 
scope :recent, conditions: ["category = "blog" and created_at < ?", Time.now] 
Смежные вопросы