Фильтрация родительской модели на основе дочерней области - PullRequest
0 голосов
/ 17 июня 2019

С помощью этой публикации я смог создать область для фильтрации трендовых досок.Я сейчас ищу, чтобы создать область на родительской модели плат.Поэтому вместо того, чтобы вернуть доски, я хочу, чтобы у всех родителей были доски с трендами.К сожалению, я получаю эту ошибку:

ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR:  subquery has too many columns)

Вот как настраивается моя область действия:

scope :trending, -> { where(board: Board.trending) }

Вот полное описание отношений:

class Album < ApplicationRecord
  has_one :board, as: :boardable

  scope :trending, -> { where(board: Board.trending) }
end

class Artist < ApplicationRecord
  has_one :board, as: :boardable

  scope :trending, -> { where(board: Board.trending) }
end

class Board < ApplicationRecord
  belongs_to :boardable, polymorphic: true, optional: true

  scope :trending, -> {
    joins(:posts)
     .select("boards.*, count(posts.id) as latest_posts_count")
     .where('posts.created_at >= ?', 7.days.ago)
     .where(board_category_id: nil)
     .order('latest_posts_count desc')
     .group('boards.id')
     .limit(10)
  }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...