2015-02-07 46 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] 
    ] 
) 
)