如果附近没有任何内容,我正在尝试使用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中显示。
有更好的方法吗?
答案 0 :(得分:0)
你没有设置@location
,但即使你不想将它与一个整数进行比较,因为它应该是一个位置对象。我认为tou想要像
if @locations.any?
另外,我也将默认位置也放在一个数组中,这样@locations
总是(类型)相同的类型:可迭代的东西。