Datamapper (ruby) - (на примере блога) Получение сообщений без комментариев - PullRequest
3 голосов
/ 10 февраля 2010

Первый ТАК вопрос после использования этого места для ссылки на многие другие вещи .. Я нервничаю.

DataMapper .. Используя модель блога, например (сообщения, комментарии и т. Д. - http://datamapper.org/docs/associations.html) Я пытаюсь найти способ получить сообщения блога, которые не имеют комментариев ..

Так что-то вроде Post.all (: comments => {: comment => nil})

У Лота много удачи: (

Я читал здесь, что для сложных запросов отчетов лучше перейти на SQL, но, конечно, есть способ сделать это, не так ли?

Заранее спасибо.

1 Ответ

3 голосов
/ 11 февраля 2010

Если в вашей модели Post нет кэша счетчика (например, "comments_count"), это будет медленно. Но здесь все равно:

Post.find(:all, :include => :comments).select { |post| post.comments.empty? }

Я бы предложил использовать решение для кэширования счетчиков (но для этого необходимо выполнить рефакторинг схемы и обновить счетчики во время миграции):

Post.all(:conditions => { :comments_count => 0 })

Последний намного эффективнее, особенно в Rails 3 (причина ленивых запросов).

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