0

如果我运行此查询:

self.send("search", where: {geo_location: { near:[ params[:latitude], params[:longitude] ]}}, boost_by: {luxury_shopper: {factor: 80}} && {movie_goer: {factor: 20}})

一切都很好,我得到了我的结果。但是如果我运行这个查询

booster = "boost_by: {luxury_shopper: {factor: 80}} && {movie_goer: {factor: 20}}"

self.send("search", where: {geo_location: { near:[ params[:latitude], params[:longitude] ]}}, booster)

我得到SyntaxError: unexpected ')', expecting =>了,但我不知道为什么,或者更重要的是,如何编写这个查询。助推器部分是动态的。我得到任意数量的属性来“提升”并将它们插入到查询中。

4

1 回答 1

1

您传递了一个字符串,其中 searchkick需要一个哈希值,我不确定它是否会自动合并选项,以下应该可以完成这项工作:

booster = { boost_by: { luxury_shopper: {factor: 80}, movie_goer: {factor: 20} } }
self.send("search", {where: {geo_location: { near:[ params[:latitude], params[:longitude] ]}}}.merge(booster))
于 2015-06-08T16:59:08.390 回答