упорядочение по ценности ребенка в отношениях один ко многим - PullRequest
0 голосов
/ 01 февраля 2011

таблица сообщений

int id

таблица комментариев

int id
int post_id
datetime created_at

Мне нужно заказывать посты по комментариям. Я пытался что-то подобное, но я не могу выбрать отдельные идентификаторы постов. Любая помощь будет оценена.

Post.all(:joins => :comments, :order => 'comments.created_at')    

Я хочу увидеть пост, который недавно был прокомментирован, сверху.

1 Ответ

0 голосов
/ 01 февраля 2011

Условие, которое вы проходите, недействительно.Самый простой способ выполнить то, что вы пытаетесь сделать, - это добавить столбец в таблицу сообщений - скажем, last_commented_at.В вашей модели Comment вы добавляете обратный вызов

class Comment < ActiveRecord::Base
  belongs_to :post

  after_save :update_posts_last_commented_attribute

  def update_posts_last_commented_attribute
    post.update_attribute(:last_commented_at, updated_at)
  end
end

Затем вы можете загрузить свои сообщения, позвонив по номеру

Post.order("last_commented_at DESC" )

, чтобы сначала показать сообщения, которые недавно были прокомментированы.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...