Validation 如何验证多个附件的上载大小?

Validation 如何验证多个附件的上载大小?,validation,ruby-on-rails-4,file-upload,carrierwave,Validation,Ruby On Rails 4,File Upload,Carrierwave,您好,我正在使用carrierwave使用its上载多个文件,但无法确定如何验证上载的多个文件的大小。我想到了这样的事情: post.attachments.each do |a| puts a.size.to_i end 然后以某种方式对其进行总结,并对总大小进行验证。或者也可以在个人层面上执行。所以我终于找到了答案。首先,我创建大小数组,然后求和并验证总大小: class Post < ActiveRecord::Base validate :attachments_size p

您好,我正在使用carrierwave使用its上载多个文件,但无法确定如何验证上载的多个文件的大小。我想到了这样的事情:

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
class Post2.MB
错误。添加(:附件,“应小于2MB”)
结束
结束

所以我终于找到了答案。首先,我创建大小数组,然后求和并验证总大小:

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
class Post2.MB
错误。添加(:附件,“应小于2MB”)
结束
结束