+
+ validates_presence_of :customer_id
+ validates_presence_of :date
+ validates_presence_of :price
+ validates_numericality_of :price
+
+ def title
+ if type == MerchandisePurchase
+ return merchandise.title
+ else
+ return rentable.title
+ end
+ end
+
+ protected
+ def validate
+ errors.add(:price, "cannot be negative") if price < 0
+ 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