I am using paperclip to handle my file uploads, and in one situation I don't want the file to be mandatory. I do however want to make sure it is a specific file type when it is present.
I have this:
class TestModel < ActiveRecord::Base
#stuff
has_attached_file :sound #etc...
validates_attachment_content_type :sound, :content_type => ['audio/mp3', 'application/x-mp3']
end
And when I have no sound file present, it tells me it is not one of the valid content types. I've tried adding ''
to the :content_type
array, which also doesn't work!
I also attempted creating a lambda procedure for the :if
property, but I can't get it to run without some kind of error.
Anything missing here?
I guess you could try a 'conditional validation' where the condition is if a file is present?
class TestModel < ActiveRecord::Base
#stuff
has_attached_file :sound #etc...
validates_attachment_content_type :sound, :content_type => ['audio/mp3', 'application/x-mp3'], :if => :sound_attached?
def sound_attached?
self.sound.file?
end
end
This issue has been fixed in newer versions of paperclip (I think around 2.3.4 based on when the commit was made). See discussion at
https://github.com/thoughtbot/paperclip/issues/125
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With