Направляющие ActiveRecord: объединенное: включайте и: возможный запрос условий?

Предположите, что у меня есть Статьи Wiki со многими Изменениями. Я хотел бы сделать запрос с ActiveRecord через базу данных, которая только возвращает те Статьи, которые имеют Изменения, которые обновляются за прошлые 24 часа. Действительно ли такая вещь возможна?

Я предположил бы, что это будет что-то как:

Articles.find_all(:include => :revisions, 
                  :conditions => {:revision[updated_at] => 1.week.ago..Time.now.utc})

Если бы это не возможно, там некоторый тип необработанного SQL, который я мог бы передать find_by_SQL, который это добилось бы цели?

6
задан William Jones 21 February 2010 в 04:28
поделиться

2 ответа

Если вам нужна только статья и не требуется загружать все исправления, вы можете вместо этого использовать: joins. Он использует меньше памяти, потому что не загружает все исправления для каждой статьи. Используйте: include, хотя, если вы будете делать что-то вроде article.revisions .

Article.find(:all, 
  :joins => :revisions, 
  :conditions => ["revisions.updated_at > ?", 24.hours.ago]
)
4
ответ дан 17 December 2019 в 00:08
поделиться

В зависимости от того, как именно вы назвали свои модели, это будет что-то вроде этого.

Article.find(:all, :include => :revisions, :conditions => ["revisions.updated_at > ?", 1.week.ago])
3
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: