如果ActiveStorage中上传的文件是否为pdf,我需要进行验证以检查文件扩展名。
我对下面的验证感到厌倦,但是显示一条错误消息,与文件扩展名(也就是pdf文件)无关...
validate :user_file_type, if: :is_existing?
def user_file_type
extension = ['file/pdf']
errors.add(:user_file, "must be a PDF") unless
user_file.blob.content_type.in?(extension)
end
def is_existing?
self.user_file.attached?
end
有人知道我应该如何编写验证,以便仅在上载非pdf时显示错误消息?谢谢
答案 0 :(得分:2)
有一个用于进行主动存储验证的工具:active_storage_validations
我使用这个宝石,并向您推荐。您可以像这样使用它:
validates :user_file, content_type: ['application/pdf']