Rails transaction rollback does not happen if after_create fails -


in user model have after_created callback as

after_create :count_files def count_files   errors[:base] << "error working"   errors.add(:base, "error working")           return false end 

as can see, adding base errors , returning false always, still user created. think, if after_create returns false automatic rollback happens instead of saving data in database. case, data saving in database , transaction rollback doesn't happen. why that? how can prevent user being created if after_create fails?

after_create means transaction closed, object created.

instead after_create have add custom validation, like:

validate :count_files  private  def count_files    count = counting_hear    errors.add(:base, "error working")  if count < 10 end 

edited

but if wanna use callbacks (after_create) raise exeption instead return false

after_create :count_files  def count_files   errors[:base] << "error working"   errors.add(:base, "error working")           raise mysupercustomexeption end 

Comments