Получить только категории с новостями - PullRequest
0 голосов
/ 03 ноября 2010

Я создаю приложение для рельсов. и я хотел знать, есть ли автоматический способ получать только категории с новостями на нем.

если я хочу создать список на боковой панели, но показывать категории только для публичного фильтра?


Привет, я новичок в этом, и у меня есть этот код:

товаров с: - brand_id - category_id

Я просто хочу: когда я войду в бренд, тогда покажу только категории с продуктами этого бренда.

Я так и думаю:

brand.products.find(:all)

это покажет мне все продукты с brand_id, где я

и как я могу сделать это для категории + бренд?

brand.category.products(:all)

не приведет, я немного запутался

тогда

Ответы [ 3 ]

1 голос
/ 03 ноября 2010

Да, вам просто нужно кодировать его.

0 голосов
/ 03 ноября 2010
Post.find(
  :all,
  :select => 'posts.*, count(categories.id) as category_count',
  :joins  => 'left outer join categories on categories.post_id = posts.id',
  :group  => 'posts.id',
  :having => 'category_count > 0'
)
0 голосов
/ 03 ноября 2010

Вы можете использовать запрос, или быстрый способ использовать:

category.news.size != 0

, поскольку category.news вернет массив записей новостей, имеющих эту категорию, поэтому, если размер равен 0, то не показывать его.

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