class Order < ActiveRecord::Base validates :name, :presence => true validates :firstname, :presence => true validates :street1, :presence => true validates :cityname, :presence => true validates :country, :presence => true validates :email, :presence => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i has_many :order_products, :dependent => :destroy #validates :cgv,:acceptance => {:message => "Vous devez accepter les conditions générales de vente."} attr_accessor :cgv before_save do self.total = 0.0 self.order_products.each do |order_product| self.total = self.total + order_product.price.to_d end end before_create do self.generate_token end def generate_token begin self[:token] = SecureRandom.urlsafe_base64 end while Order.exists?(:token => self[token]) end end