0
嗨,我是使用carrierwave使用其array approach上傳多個文件,但無法弄清楚如何驗證上傳多個文件的大小。我想過這樣的事情:如何驗證多個附件上傳大小?
post.attachments.each do |a|
puts a.size.to_i
end
然後以某種方式總結它,並寫出一個驗證總大小。或者,它也可以在個人層面上進行。
嗨,我是使用carrierwave使用其array approach上傳多個文件,但無法弄清楚如何驗證上傳多個文件的大小。我想過這樣的事情:如何驗證多個附件上傳大小?
post.attachments.each do |a|
puts a.size.to_i
end
然後以某種方式總結它,並寫出一個驗證總大小。或者,它也可以在個人層面上進行。
所以,我終於找到了答案。首先,我創建尺寸的陣列,然後概括起來並驗證總大小:
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