Проблемы с геокодером Rails - PullRequest
       19

Проблемы с геокодером Rails

0 голосов
/ 22 сентября 2011

Я использую гем геокодера, и мне нужно кодировать начальный и конечный адрес для модели, однако я не уверен, смогу ли я сделать это с помощью этого гема, и могу ли я сделать это правильно.Если это невозможно сделать с гемом, есть ли другой ресурс, который позволит мне геокодировать два местоположения в одной форме?Это пример того, что я пытаюсь сделать, но он просто передает второй адрес для геокодирования.

geocoded_by :start_address
before_validation :geocode
geocoded_by :delivery_address, :latitude => :end_latitude, :longitude => :end_longitude
before_validation :geocode

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

То, что происходит, это просто рубин ... если вы сделаете это:

class Question
  def ask
    "what would you like?"
  end

  def ask
    "oh hai"
  end
end

Question.new.ask
 => "oh hai"

Последнее определение метода побеждает ... поэтому, когда вы объявляете два geocoded_by метода, учитывается 2-й.

Я думаю, вам придется вручную геокодировать, используя гем

before_validation :custom_geocoding

def custom_geocoding
  start_result = Geocoder.search(start_address)
  end_result = Geocoder.search(delivery_address)
  # manually assign lat/lng for each result
end
1 голос
/ 22 сентября 2011

Если вы посмотрите на источник, он выглядит так, как будто есть хэш опций, который будет перезаписан active_record.rb и base.rb .

Я думаю, что тамЕсть два варианта: переместить ваши адреса во включенную (присоединенную) модель (например, Address или что-то еще), или разветвить геокодер, чтобы иметь несколько опций по ключу.Первый проще и решает проблему.Второй - круче (возможно, я сам играю с этим как ката).

...