当使用这个查询时(与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)