Receiving the error PG::UndefinedColumn: ERROR: column mymodels.distance does not exist when using Geocoder's near method

StackOverflow https://stackoverflow.com/questions/22455937

سؤال

When using this query (the same as in Railscasts episode #273):

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

Or, to be more concise:

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

I get the error:

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

The distance column is supposed to be added to the results by the Geocoder gem but it does not appear to appear in the results (so I get the above error).

هل كانت مفيدة؟

المحلول

When using Postgres along with the Geocoder gem, your queries cannot use symbolized keys (in this case, :distance) in the query. Using the string 'distance' in this case avoids the problem.

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

نصائح أخرى

I could solve this (with rails 5.2.2) using:

@mymodels = Mymodel.where(publish: true).near(params[:search], 50, units: :km)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top