在Rails的ActiveStorage中,可以使用验证器(Validator)来限制上传文件的数量。下面是一个示例代码:
class User < ApplicationRecord
has_many_attached :files
validate :validate_file_limit, on: :update
private
def validate_file_limit
if files.attached? && files.count > 5
errors.add(:files, "can't exceed 5 files")
end
end
end
在上述示例中,我们在User模型中定义了一个has_many_attached关联,用于关联文件上传。然后,我们在模型中定义了一个自定义验证方法validate_file_limit,该方法会在更新(update)操作时触发。在该验证方法中,我们检查了上传的文件数量,如果超过了5个文件,则将错误添加到模型的errors对象中。
这样,当用户尝试上传超过5个文件时,ActiveStorage就会自动触发验证错误,并返回相应的错误信息。
希望对你有所帮助!