Количество просмотров "поста"
1. Заведите в модели Поста целочисленное поле :visitors.
2. В контроллере постов сделайте как-то так:def show
...
@post.increment(:visitors)
@post.save
...
end
Я не могу в ruby, но предложу вот что: я предполагаю, что новости у вас хранятся в БД. Так вот: оберните выборку новости в хранимую процедуру, и после чтения апдейтите кол-во просмотров (если у вас нет такого столбца, заведите его).
Так и вывод популярных постов будет реализовываться одним запросом.