2016-02-25 40 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