Как мне найти все записи, которые имеют определенную ценность ассоциации? - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть модель property, которая belongs_to :property_type.

Я хотел бы создать область действия для моей модели Property, которая находит все записи определенной property_type.

Как мне найти все property записи с property_type.name == "Residential"?

Я пробовал следующее:

> Property.where('property_type.name = "Residential"').count
   (5.4ms)  SELECT COUNT(*) FROM "properties" WHERE (property_type.name = "Residential")
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "property_type"
LINE 1: SELECT COUNT(*) FROM "properties"  WHERE (property_type.name...

Также это:

> Property.where('property_types.name = "Residential"').count
   (1.8ms)  SELECT COUNT(*) FROM "properties" WHERE (property_types.name = "Residential")
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "property_types"
LINE 1: SELECT COUNT(*) FROM "properties"  WHERE (property_types.nam...

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете использовать объединения для фильтрации по типу свойства

Property.joins(:property_type).where(property_types: {name: "Residential"}).count

ИЛИ

Property.joins(:property_type).where("property_types.name = ?", "Residential").count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...