X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/1260415e640fec24f8c970ae8e61f4a7ab4594d4..8ddabb6f9904361d01f65dfafb043c3911d720b0:/app/models/candidate.rb?ds=sidebyside diff --git a/app/models/candidate.rb b/app/models/candidate.rb index e17ba29..430b6ab 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -1,5 +1,8 @@ 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 @@ -9,4 +12,25 @@ class Candidate < ActiveRecord::Base 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 +