class Purchase < ActiveRecord::Base
+ belongs_to :customer
+
+ validates_presence_of :customer_id
+ validates_presence_of :date
+ validates_presence_of :price
+ validates_numericality_of :price
+
+ def title
+ if self.class == MerchandisePurchase
+ return merchandise.title
+ elsif self.class == RentablePurchase
+ return rentable.title
+ elsif self.class == BonusPurchase
+ return rentable.title
+ else
+ return 'Late Fees'
+ end
+ end
+
+ protected
+ def validate
+ errors.add(:price, "cannot be negative") if price < 0
+ # Need to leave this out for bonuses
+ #errors.add(:price, "cannot be less than $0.01") if price < 0.01
+ errors.add(:customer_id, "does not exist in the database") if customer.nil?
+ end
end