Rails Transaction - Validations Not Rendering

When I run my transaction, it doesn’t throw my errors partial displaying that amount can’t be string characters, they have to be integers. Not sure why this is the case, any ideas? My errors works on my other controllers, but on my transaction code.


Payments Controller

  def create
    @debt = current_user.debts.find params[:debt_id]
    @payment = @debt.payments.build params[:payment]
    @payment.user_id = current_user.id
    if @payment.save_and_update(@debt)
      redirect_to @debt
    else
      render 'debts/show'
    end
  end



Payment Model
  attr_accessible :amount

  validates :amount, presence: true, :numericality => true

  belongs_to :debt

  def save_and_update(debt)
    self.transaction do
      self.save
      debt.update_attributes(amount: debt.amount - self.amount)
    end
  end


Routes

  resources :debts do
    resources :payments
  end