轨道上的红宝石 - 收到错误 PG::未定义列: 错误: 使用 Geocoder 的近方法时,列 mymodels.distance 不存在



当使用这个查询时(与Railscasts第#273集相同):

@locations = Location.near(params[:search], 50, :order => :distance)

或者,更简洁地说:

@mymodels = MyModel.near(address, distance, order: :distance)

我得到错误:

PG::UndefinedColumn: ERROR:  column mymodels.distance does not exist

distance列应该由Geocoder gem添加到结果中,但它似乎没有出现在结果中(所以我得到上述错误)。

当使用Postgres和Geocoder gem时,您的查询不能在查询中使用符号键(在本例中为:distance)。在这种情况下使用字符串'distance'可以避免这个问题。

@mymodels = MyModel.near(address, distance, order: 'distance')

我可以解决这个问题(与rails 5.2.2)使用:

@mymodels = Mymodel.where(publish: true).near(params[:search], 50, units: :km)

相关内容

最新更新