Могу ли я иметь два обратных вызова "after_validation" в Rails? - PullRequest
0 голосов
/ 25 марта 2019

У меня есть модель Home, я хочу сделать два разных действия, в зависимости от того, есть ли у меня координаты или просто город.

У меня есть следующие обратные вызовы:

reverse_geocoded_by :latitude, :longitude do |obj,results|
    if geo = results.first
      obj.city = geo.city
      obj.country = geo.country
      obj.name = "Home in #{geo.city}"
    end
  end

  after_validation :reverse_geocode, if: :allowed_coords?

  geocoded_by :city
  after_validation :geocode, :reverse_geocode, if: :not_allowed_coords?

  def allowed_coords?
    binding.pry
    self.allowed_coords
  end

  def not_allowed_coords?
    binding.pry
    !self.allowed_coords
  end

Только одинобратный вызов срабатывает, after_validation :geocode, :reverse_geocode, if: :not_allowed_coords?.Почему положительный игнорируется?

Могу ли я не выполнять различные действия для after_validation?Что бы вы предложили в качестве решения?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...