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

検索キックがハッシュを期待する文字列を渡しますが、オプションを自動的にマージするかどうかはわかりません。次のようにしてください。

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 に答える