rails 3模型中的after_validation处理

时间:2010-12-31 03:31:11

标签: activerecord ruby-on-rails-3

只是想知道是否有人知道如何运行after_validation逻辑,具体取决于:link attr是否有效?

validates :link, :uri_check => { :schemes => [:ftp, :http, :https] } 

after_validation :initialize_dependents, :on => :create

def initialize_dependents 
  #post validation logic here
end 

所以代替:on => :创造,也许......

after_validation :initialize_dependents, :if => link.valid?

问题是我只能访问字符串而不是对象。

任何帮助都将不胜感激。

由于

2 个答案:

答案 0 :(得分:0)

尝试这样的:if

:if => Proc.new { --code here-- }

:if => :my_method?

def my_method?
  --code here--
end

答案 1 :(得分:0)

知道了!只需要创建一个Observer。

class LinkObserver < ActiveRecord::Observer

  after_validation(model)
   #logic here
  end

end