Вы можете указать rails автоматически вести подсчет постов, использующих тег, добавив опцию counter_cache к ассоциации.
На вашей модели тега:
has_many :posts, :counter_cache => true
На ваших сообщениях модель:
belongs_to :tag, :counter_cache => true
Через миграцию:
add_column :tags, :posts_count, :integer, :null => false, :default => 0
Каждый раз, когда вы добавляете сообщение с этим тегом, счетчик тегов будет увеличиваться на единицу. Затем вы можете выполнить ваш заказ легко:
Tags.order('posts_count')
Более подробную информацию о методах и опциях ActiveRecord Association можно найти здесь .