Я думаю, что ваша модель не так.См. Рельсы автоматически добавляют 2 атрибута к модели: created_at
и update_at
.Таким образом, наличие отношений, как вы описываете, является избыточным.Для меня это должно выглядеть так:
#model/blog.rb
class Blog < ActiveRecord::Base
has_many :messages
end
#model/message.rb
class Message < ActiveRecord::Base
belongs_to :blog
end
Затем, чтобы получить блоги, упорядоченные по последнему сообщению, вы можете сделать это:
Blog.joins(:messages).order("messages.created_at_desc")
Это, как вы, возможно, заметилидаст вам двойные записи для вашей модели блога.Если это не проблема, продолжайте.Если это так, у вас есть два варианта: сделать each
и проверить, видели ли вы блог, если нет, то вы отобразите его.Или вы можете написать свой собственный sql.