Demigodd
@Demigodd

Как вызвать метод модели в условий Where?

Представим мне нужно взять.
Количество Авторов, которые пишут фантастику.

Есть 3 таблицы Author, Book, Category.

И есть методы для определенных моделей.
# Model Book
def category_type
  self.category.type
end

# Model Category
def type
  if self.name.present?
    self.name
  else
    "Other"
  end
end


Как мне написать примерно такой запрос ?
# Пример нерабочего запроса.
Author.joins(:book).where("book.category_type":  "Fantastic").count


То есть как получить авторов, у которых связанные с ними книги имеют category_type равное "Fantastic".
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
zorar4ik
@zorar4ik
Full stack overflow
Насколько я понял со связей можно сделать так:
Author.joins(:book).joins(book: :category).where("category.type = 'Fantastic'").distinct.count


Можно еще через scopes сделать в модели.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы