在Rails中链接多个查询

时间:2014-10-16 02:42:02

标签: ruby-on-rails activerecord pg-search

我想将不同模型上的多个查询链接在一起吗?

示例:我的餐厅有很多菜肴。我想搜索靠近某个位置的餐馆,然后搜索那些与查询匹配的餐馆。我正在使用geocoder和PGSearch进行这两个查询,但我不知道如何让它们一起工作以便我有一个查询而不是将所有附近的餐馆加载到内存中然后通过查询。

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要使用"加入",我还没有使用这些宝石,但是我会进行一般的主动记录搜索,之后你可以根据情况进行调整:

Restaurante.where(query_on_restaurante).joins(:dishes).where(dishes:{query_on_dishes})

其中:

query_on_restaurantes可以是:location:" Hawai" :菜肴被认为是关系的名称(餐厅has_many菜) query_on_dishes可以是:name:" Cheetos"

注意第二个where语句的括号。