Rails Geocoder Nearby Logic

时间:2015-02-28 06:42:53

标签: ruby-on-rails rails-geocoder

如果附近没有任何内容,我正在尝试使用Geocoder Gem返回默认位置。但是,我的逻辑总是返回DB中的第一个位置,这是我想要的但是如果满足条件它应该返回有效的附近请求。这是我的控制器:

def nearby
    respond_to do |format|
      @locations = Location.nearby([nearby_location_params[:latitude], nearby_location_params[:longitude]], nearby_location_params[:distance])
    if @location == 1
      format.json { render json: @locations, status: :success }
    else
      @locations = Location.first
      format.json { render json: @locations }
    end
  end
end

我的猜测是:如果@location == 1是罪魁祸首。

这里我想说的是,如果在距离参数中满足条件,则显示该位置。如果没有,请先在DB中显示。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

你没有设置@location,但即使你不想将它与一个整数进行比较,因为它应该是一个位置对象。我认为tou想要像

这样的东西
if @locations.any?

另外,我也将默认位置也放在一个数组中,这样@locations总是(类型)相同的类型:可迭代的东西。