我的位置具有关联的城市和州,每个城市和州都有与之关联的报告。该报告的属性为“good_weather”。
如何查询关联城市或州的good_weather = true?
的位置这是我到目前为止所做的,但它不起作用:
Location.includes(city: [:report], state: [:report])
.where("cities.reports.good_weather = true OR states.reports.good_weather = true")
.references(:cities, :states, :reports)
模型看起来像这样:
Location has_one :city, has_one :state
City belongs_to :location, belongs_to :report
State belongs_to :location, belongs_to :report
Report has_one :city, has_one :state
PG :: UndefinedTable:ERROR:表“报告”的FROM子句条目的无效引用 ^ 提示:表“报告”有一个条目,但不能从查询的这一部分引用它。
答案 0 :(得分:0)
它应该是这样的:
Location.joins(:city, :state)
.joins("INNER JOIN reports
ON reports.good_weather = true AND
(reports.id = cities.report_id OR
reports.id = states.report_id)")
.distinct