module DestroyIfZeroQuantity extend ActiveSupport::Concern included do after_save :destroy_if_zero_quantity end private def destroy_if_zero_quantity byebug if self.quantity == 0 destroy elsif self.quantity < 0 # TODO: Can improve this (at the least, with reporting, later). raise ItemQuantityError end end end