Еще один настоящий новичок на Руби, так что, пожалуйста, будьте осторожны ...
Я работаю с геокодером alexreisner на рельсах 3.0 и не могу вызвать методы из библиотеки Geocoder :: Results. Я изучил документацию по Geocoder, но я не могу выполнить одну простую вещь: вытащить результат «состояния» из предоставленного пользователем адреса. Поэтому включите «123 Fake Street, San Francisco, CA» в «CA» или «California».
(В настоящее время моя программа будет использовать информацию о «состоянии» только для определения результатов, но я хотел бы иметь полную информацию об адресе, которую можно будет использовать позже, когда я буду дорабатывать приложение, поэтому я запрашиваю полный адрес.)
Я настроил свою модель с помощью лучшего, что мне удалось собрать из документации и других ответов, которые я нашел здесь, но предыдущие ответы, подобные этой теме, мне не помогли:
class Project < ActiveRecord::Base
attr_accessible :title, :address, :latitude, :longitude
belongs_to :user
geocoded_by :address
after_validation :fetch_coordinates
reverse_geocoded_by :latitude, :longitude do |obj, geo|
obj.state = geo.state
obj.country_code = geo.country_code
obj.address = [geo.state, geo.country_code].join(",")
end
after_validation :reverse_geocode
end
Но это приводит к «неопределенному методу ошибки» для штата, кода страны и адреса. Я не понимаю, потому что документация к гему Geocoder четко предоставляет эти методы. Моя модель просто не может получить к ним доступ. (Кстати, моя модель способна получить широту и долготу с введенного адреса, поэтому кажется, что Geocoder настроен правильно. И метод "geocoded_by" работает отлично. Кроме того, он правильно настроен на Google API).
Я почти уверен, что здесь что-то упущено. В консоли rails я даже могу использовать Geocoder.search ("Miami, FL") и извлекать всю информацию о округе, штате и городе, но я просто не могу извлечь "штат" через мою модель.
Спасибо за любую помощь!