Не могли бы вы подробно объяснить, что такое обратные вызовы Ruby :before_save
и :before_create
Rails и как они связаны с валидациями Rails? Проверка происходит после :before_save
или :before_create
?
ruby-on-rails
ruby
ruby-on-rails-3
validation
Агунг Празетио
источник
источник
before_validation_on_create
иafter_validation_on_create
удаляются с Rails 3 вместо использованияbefore_validation
иafter_validation
соответственно с опцией:on => :create
.after_save
илиafter_create
?after_save
илиafter_create
обратного вызова,self
является запись , которая была только что сохранили, как она существует после сохранения. Это включает в себя автогенерируемые областях , какid
,created_at
,updated_at
.before_create
что новый объект сохраняется в базе данных, а не фактическийcreate
вызываемый метод. Таким образом,before_create
все еще можно уволить даже изsave
метода.before_save
3-й иbefore_create
5-й.before_save
вызывается каждый раз, когда объект сохраняется. Так что для новых и существующих объектов. (создать и обновить действие)before_create
только до создания. Так что только для новых объектов (создать действие)источник
before_create
противbefore_save :on => :create
Иногда вы должны быть осторожны с порядком обратных вызовов
Смотрите здесь для получения более подробной информации: http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/источник
before_save :on => :create
не работает (по крайней мере, на рельсах 3.2)before_save :generate_api_key, :if => :new_record?