我有外地城市用户列表。我们如何获取距特定城市约200公里的用户列表?
我正在使用地理编码器gem查找最近的位置。但是,如何仅在城市中为用户使用lat和lon而不显示lat和lon?
user = User.last
user.address = 'Sydney'
location = Geocoder.search(user.address).first
lat = location.latitude
lon = location.longitude
within_user = SpreeUser.near([lat, lon], 200, units: :km)
这将导致错误,因为用户不存在纬度和经度。是否可以通过其他字段(例如在这种情况下,例如地址)来完成此操作?
答案 0 :(得分:0)
作为geocoder docs状态,您可以轻松地对用户进行地理编码。
在您的模型中:
$new_recipe_model = $existing_recipe_model->replicate();
$new_recipe_model->user_id = Auth::user()->id;
$new_recipe_model->save();
和latitude
添加到模型中。longitude
geocoded_by :address
答案 1 :(得分:0)
在您的问题中提到,您已经在用户表中拥有名为“ city”的字段。
(参考:https://github.com/alexreisner/geocoder#geocoding-objects)
尝试一下:
SpreeUser.near('Austin', 200, units: :km) # users within 200 kms of Austin city