I am using paperclip for uploading file ( video and images).
Have used the same attachment(source) for both video and images.
class Media < ActiveRecord::Base
belongs_to :memory
validates_attachment_presence :source
validates_attachment_content_type :source,
:content_type => ['video/mp4', 'image/png', 'image/jpeg', 'image/jpg', 'image/gif']
end
Now I wanted to display different error messages in different cases.
- When uploading file is image type but not the jpg/png/jpeg/gif.
- When uploaded file is video type but not the mp4
How can i achieve this ?
Any help would highly appreciated.
So finally I got the solution.
I added 2 conditional validation for the same
class Media < ActiveRecord::Base
belongs_to :memory
validates_attachment_presence :source
validates_attachment_content_type :source,
:content_type => ['video/mp4'],
:message => "Sorry, right now we only support MP4 video",
:if => :is_type_of_video?
validates_attachment_content_type :source,
:content_type => ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'],
:message => "Different error message",
:if => :is_type_of_image?
has_attached_file :source
protected
def is_type_of_video?
source.content_type =~ %r(video)
end
def is_type_of_image?
source.content_type =~ %r(image)
end
end