2015-02-07 43 views
0

我试图找出如何写这个查询的ActiveRecord的等价:如何用ActiveRecord查询多个表?

SELECT id FROM projects, neighborhoods 
WHERE ST_WITHIN(projects.lonlat, neighorhoods.the_geom); 

我试了几种方法,包括

Neighborhood.select(:id).from('projects').where("ST_WITHIN(projects.lonlat, neighorhoods.the_geom)") 

但结果查询始终解析到一个表。谁能帮我吗?

回答

2

利用惊人的工具scuttle.io to隐蔽SQL来阿雷尔:

Neighborhood.select(:id).where(
    Arel::Nodes::NamedFunction.new(
    'ST_WITHIN', [ 
     Project.arel_table[:lonlat], Neighorhood.arel_table[:the_geom] 
    ] 
) 
)