Использование рельсового геокодера, когда объект имеет 2 набора координат
Rails 3.1, Ruby 1.9.3
Итак, у меня есть две модели, обе имеют два набора координат.
Первая модель, Load
имеет from_lat/lng
, так же как to_lat/lng
,
Вторая модель, Trucks, имеет current_lat/lng
так же как destination_lat/lng
,
То, что я пытаюсь сделать, это найти все результаты, которые имеют либо current_lat/lng
или же destination_lat/lng
от модели Грузовик возле to_lat/lng модели Load.
Моя модель для дорожек примерно такая:
class Load < ActiveRecord::Base
has_many :trucks
geocoded_by :custom_geocode
after_validation :custom_geocode
def custom_geocode
var = Geocoder.coordinates([from_city,from_state].compact.join(','))
var2 = Geocoder.coordinates([to_city,to_state].compact.join(','))
self.from_lat = var.first
self.from_lng = var.last
self.to_lat = var2.first
self.to_lng = var2.last
end
end
На мой взгляд, у меня есть:
<% for truck in @trucks %>
<li><%= truck.destination_lat %></li>
<% end %>
В настоящее время я использую это в моем load_controller:
def show
@load = Load.find(params[:id])
@trucks = Truck.near([@load.from_lat, @load.from_lng], 100, :order => "distance")
respond_to do |format|
format.html # show.html.erb
format.json { render json: @load }
end
end
Я получаю ошибку:PG::Error: ERROR: column trucks.latitude does not exist
Я знаю, что это потому, что имя столбцов не по умолчанию :latitude
а также :longitude
, Как я могу указать во время этого конкретного поиска, какой набор столбцов использовать (destination_lat/lng или current_lat/lng) из модели Truck?