Упорядочение по дате и времени для вложенных объектов с использованием PostgreSQL - PullRequest
0 голосов
/ 31 января 2019

Я хочу отсортировать доску по частоте, когда сообщение создается или обновляется.Я смог сделать это, но заказ точный все еще выключен.Например, если у меня есть 2 сообщения (A, B) и обновление B, это сообщение по-прежнему отображается на втором месте после A. У меня раньше была эта проблема с PostgreSQL, и я решил ее, используя объектный id в качестве вторичного столбца сортировки.К сожалению, в этом случае я иду по сообщениям.Судя по моему коду, в чем проблема?

class Board < ApplicationRecord
  has_many :posts
end

class Post < ApplicationRecord
  belongs_to :board
end

class StaticController < ApplicationController
  def index
    @active_boards = Board
      .includes(:posts)
      .where.not(posts: { board_id: nil })
      .order('posts.created_at ASC', 'posts.updated_at ASC')
      .limit(10)
  end
end

1 Ответ

0 голосов
/ 31 января 2019

Первая возможность также установить updated_at при вставке сообщения, тогда вы можете просто использовать этот столбец.

Другой вариант - ORDER BY max(created_at, updated_at).

...