обработка после проверки в рельсах 3 модели - PullRequest
1 голос
/ 31 декабря 2010

просто интересно, знает ли кто-нибудь способ запуска логики after_validation в зависимости от того, действителен ли атрибут: link или нет?

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

after_validation :initialize_dependents, :on => :create

def initialize_dependents 
  #post validation logic here
end 

Так что вместо: on =>: create, возможно ...

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

Проблема в том, что я могу получить доступ только к строке, а не к объекту.

Любая помощь будет принята.

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 января 2011

Понял! Просто нужно создать Обозревателя.

class LinkObserver < ActiveRecord::Observer

  after_validation(model)
   #logic here
  end

end
0 голосов
/ 31 декабря 2010

Попробуйте :if вот так:

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

или

:if => :my_method?

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