Зачем загромождать вашу базу данных другим столбцом, если интерфейс программный? Сделайте has_comments методом на Пост:
def has_comments
comments.size > 0
end
Затем реализуйте counter_cache, как предложено, чтобы уменьшить нагрузку на запрос.
РЕДАКТИРОВАТЬ: в качестве альтернативы, после внедрения счетчика кэша, вы можете использовать named_scope в публикации, чтобы получить все сообщения с комментариями, используя один запрос, если это главная цель:
* +1007 *
РЕДАКТИРОВАТЬ: Вы также можете избежать знаменитой проблемы с n + 1 запросом, используя грамотно: include:
posts = Post.find(:all, :include => :comments)