class Candidate < ActiveRecord::Base
belongs_to :election
+ validates_presence_of :name
+
+ # validate uniqueness of a name *within a given election*
def <=>(other)
- self.name <=> other.name
+ self.name <=> other.name
end
def to_s
name
end
+ def picture=(picture_field)
+ if picture_field
+ unless picture_field.content_type.match(/^image/)
+ return false
+ end
+ self.picture_filename = base_part_of(picture_field.original_filename)
+ self.picture_type = picture_field.content_type.chomp
+ self.picture_data = picture_field.read
+ end
+ end
+
+ def base_part_of(filename)
+ name = File.basename(filename)
+ name.gsub(/[^\w._-]/, '')
+ end
+
+ def picture?
+ !self.picture_filename.nil?
+ end
+
end
+