在Active Storage中,'content_type'是指附件的文件类型。下面是一些常见的文件类型及其对应的content_type值:
image/jpeg
image/png
image/gif
application/pdf
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
audio/mpeg
audio/mp3
audio/wav
audio/x-wav
video/mp4
video/quicktime
video/x-ms-wmv
video/x-flv
text/plain
application/zip
application/x-gzip
application/x-tar
application/x-rar-compressed
要获取附件的content_type,可以使用Active Storage的blob
对象的content_type
方法。例如,假设有一个附件对象attachment
,可以通过以下方式获取其content_type值:
attachment.blob.content_type
如果要验证附件的content_type是否符合特定的类型,可以使用Rails的validates
方法。例如,验证附件是否是图片类型:
class MyModel < ApplicationRecord
has_one_attached :image
validates :image, content_type: ['image/png', 'image/jpeg', 'image/gif']
end
这样,将只允许上传上述三种图片类型的附件。