Got*_*osh 1 file-upload ruby-on-rails carrierwave
我有一个用户模型,并有一个带载波的图像模型.
我想限制用户可以上传的图像数量,因为我有第二种形式,用户去上传图像,我希望他只能上传3张图像.这有一个优雅的解决方案吗?或者我是否必须制作一个自定义验证器来计算用户的图像数量?
我想你的模型在某种程度上类似于:
class User
has_many :photos
end
class Photo
belongs_to :user
mount_uploader :file, PhotoUploader
end
Run Code Online (Sandbox Code Playgroud)
这意味着您只需在用户上添加一个验证,即可以拥有多少张照片.您可以看到该帖子:限制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
Run Code Online (Sandbox Code Playgroud)