X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/2ba40f97b78f529984ff26c7c7d61c91d213e7b0..d66a99486376939d64f8a5d9032dcc516f7b1195:/app/models/candidate.rb diff --git a/app/models/candidate.rb b/app/models/candidate.rb index 7af978a..eeba4d2 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -1,6 +1,12 @@ class Candidate < ActiveRecord::Base belongs_to :election - validates_uniqueness_of :name + validates_presence_of :name + + # i have to call this picture_assoc because picture= does not overload + # the normal association method made by has_one + has_one :picture_obj, :class_name => "Picture" + + # validate uniqueness of a name *within a given election* def <=>(other) self.name <=> other.name @@ -10,24 +16,21 @@ 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 + def picture + picture_obj end - def base_part_of(filename) - name = File.basename(filename) - name.gsub(/[^\w._-]/, '') + def picture=(field) + if field and field.length > 0 + self.picture_obj = Picture.new.set_from_field(field) + return picture_obj.save + else + return false + end end def picture? - !self.picture_filename.nil? + !self.picture_obj.nil? end end