我可以在Rails中有两个回调“ after_validation”吗?

时间:2019-03-25 19:22:38

标签: ruby-on-rails callback

我有一个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采取不同的操作吗? 您会提出什么解决方案?

谢谢

0 个答案:

没有答案