2016-02-25 56 views
0

嗨,我是使用carrierwave使用其array approach上传多个文件,但无法弄清楚如何验证上传多个文件的大小。我想过这样的事情:如何验证多个附件上传大小?

post.attachments.each do |a| 
puts a.size.to_i 
end 

然后以某种方式总结它,并写出一个验证总大小。或者,它也可以在个人层面上进行。

回答

1

所以,我终于找到了答案。首先,我创建尺寸的阵列,然后概括起来并验证总大小:

class Post < ActiveRecord::Base 
validate :attachments_size 

private 
    def attachments_size 
    size_array = self.attachments.collect { |e| e.size } 
    if size_array.inject(0, :+) > 2.megabytes 
     errors.add(:attachments, "should be less than 2MB") 
    end 
    end