Я пытаюсь выяснить, где добавить ошибки для проверки на приложение rails 4, которое использует геокодер.Проверка с помощью geocoder gem
Моя модель выглядит следующим образом:
class Tutor < ActiveRecord::Base
belongs_to :user
validates_presence_of :user_id
geocoded_by :address do |obj, results|
if geo = results.first
obj.latitude = geo.latitude
obj.longitude = geo.longitude
obj.country = geo.country
obj.city = geo.city
obj.postalcode = geo.postal_code
obj.address = geo.address
end
end
after_validation :geocode, if: :address_changed?
end
Я заметил, что if geo = result.first
условного только запускается на выполнение, если адрес был найден успешно. Я хочу добавить сообщение об ошибке, если nil возвращается. Я видел, что this stackoverflow thread объясняет, что я должен использовать before_validation
вместо after_validation
, но я до сих пор не понимаю, куда добавлять ошибки, чтобы мое представление можно было повторно отобразить и ввести действительную геолокацию.
Любые идеи, где я должен размещать эту информацию? Спасибо!
Это не работает, потому что, если адрес не был введен в базе данных еще, условие 'проверяет: адрес, наличие: true' всегда будет возвращать ошибку, так как адрес получает генерируется геокодером после него делает запрос API. – DaniG2k
, поэтому геокодирование должно сделать запрос до проверки. Вот почему есть перед этим валидация ... –