Я добавил кеш счетчика comments_count
:
class AddCommentsCountToMicroposts < ActiveRecord::Migration
def change
add_column :microposts, :comments_count, :integer, :default => 0, :null => false
end
end
, чтобы в основном подсчитывать количество комментариев для каждого микросообщения (модель микросообщений).Вот так я упорядочиваю микросообщений по количеству комментариев:
controllers / microposts_controller.rb:
def index
@microposts = Micropost.paginate(:page => params[:page],
:per_page => 5).order('comments_count DESC')
end
(я использую камень will_paginate
)
Все работает как я хочу, кроме того, что заказано created_at ASC
.Если есть два микросообщений с одинаковым количеством комментариев, то созданный ранее размещается первым.Я хочу наоборот, иными словами, я хочу заказать по comments_count DESC и create_at DESC одновременно.
Есть предложения для достижения этой цели?