1

我正在使用 Rails 3.1.4、postgis 和 activerecord-postgis-adapter。我有一个“Zcta”模型和一个“Neighborhood”模型,每个模型都有一个“geog”列。我想找到交叉点,例如与某个邮政编码相交的所有街区,或与某个街区相交的所有邮政编码。我可以通过这样的显式连接来做到这一点:

Zcta.joins("join neighborhoods on st_intersects(zcta.geog, neighborhoods.geog)").where("neighborhoods.name" => 'Silver Lake')

Rails 从中创建一个 SQL 查询,该查询根据与邻域的交集返回所有适当的 Zcta 对象。这很好,但我无法在同一个查询中检索邻域对象。这也有点笨拙。我正在寻找的更像是可以急切加载的 has_many 关系。像这样的东西:

Neighborhood.find(name: 'Silver Lake').include(:zctas)

有没有办法在 Rails 中实现这一点?

4

0 回答 0