使用Rails ActiveStorage的blob和variation组件,使用开源Gem对上传文件类型和大小进行验证。
在Rails中,我们可以使用ActiveStorage来很方便地进行文件上传和管理。为了确保文件的安全性和正确性,我们可以使用blob和variation组件来验证上传文件的内容和大小。
在Gemfile中添加以下Gem:
gem 'rmagick'
gem 'fastimage'
gem 'ruby-vips'
然后在app/models中新建一个文件validation.rb,用于创建和呈现验证相关的模型和方法。
class Validation < ApplicationRecord
# Attached Files
has_many_attached :uploads
# Files Content Type Validation
validates :uploads, content_type: ['image/png', 'image/jpg', 'image/jpeg']
# Files Size Validation
validate :check_size
def check_size
uploads.each do