Rails Query limit - PullRequest
       2

Rails Query limit

3 голосов
/ 14 ноября 2011

У меня есть запрос таких картинок

pictures = Picture.near([latitude, longitude], 6.8).where("created_at >= :time",{:time => time })

и я достал теги, которые связаны с этой моделью (каждая картинка has_many :tags), вот так

@tags = Tag.find(:all, :conditions => ["picture_id in (?)",pictures.collect(&:id)])

Я использовал запрос для извлечения атрибута каждого тега

@tags.map(&:tagcontent)

Что мне нужно сделать, так это ограничить результаты выводимых тегов. поэтому я заменил

@tags = Tag.find(:all, :conditions => ["picture_id in (?)",pictures.collect(&:id)])

с этим

numoftags = 6
tags = Tag.limit(numoftags).find(:all, :conditions => ["picture_id in (?)",pictures.collect(&:id)])

но это дает только 4 тега, когда я знаю, что есть минимум 6, которые можно извлечь. Как я должен изменить эту функцию.

1 Ответ

1 голос
/ 15 ноября 2011

В Rails 3.X вы можете сделать что-то вроде этого (используя Arel)

numoftags = 6
@tags = Tag.where(["picture_id in (?)",pictures.collect(&:id)]).limit(nooftags)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...