Сортировка по объединенному столбцу, вероятно, является плохой идеей, и для ее выполнения потребуется много времени во многих ситуациях.Что было бы лучше, так это перевернуть специальное поле даты в модели Темы при создании нового сообщения:
class Post < ActiveRecord::Base
after_create :update_topic_activity_at
protected
def update_topic_activity_at
Topic.update_all({ :activity_at => Time.now }, { :id => self.topic_id})
end
end
Затем можно легко отсортировать по столбцу activity_at
при необходимости.
При добавлении этого столбца вы всегда можете заполнить начальное значение activity_at
наибольшим временем публикации, если у вас есть данные для переноса.