使用carrierwave限制文件上传量

我有一个用户模型,并有一个带有carrierwave的图像模型。

我想限制用户可以上传的图像数量,因为我有第二种forms,用户去上传图像,我希望他只能上传3张图像。 有没有一个优雅的解决方案? 或者我是否必须制作一个自定义validation器来计算用户的图像数量?

我想你的模型在某种程度上类似于:

class User has_many :photos end class Photo belongs_to :user mount_uploader :file, PhotoUploader end 

这意味着你可以简单地在用户上添加一个validation它可以拥有多少张照片。 您可以看到该post: 限制has_many关联中的对象数量

您最终会在照片模型中看到类似的内容:

 LIMIT = 3 validate do |record| record.validate_photo_quota end def validate_photo_quota return unless self.user if self.user.photos(:reload).count >= LIMIT errors.add(:base, :exceeded_quota) end end