Использование рельсового геокодера, когда объект имеет 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?

0 ответов

Другие вопросы по тегам