以我的形式

<%= label_tag("file", "Attachment:") %><%= file_field_tag "uploadfile" %>

在我的模型中,我想写这个
validate :validates_uploadfile

def validates_uploadfile(file)
    max_size = 2048
    errors.add(:uploadfile, "File size exceeds limitation") if file.size > max_size
end

在我的 Controller 中,我可以这样称呼吗?
validates_upload_file(params[:uploadfile])

有没有一种方法可以在上传之前验证文件上传(不是通过使用javascript或通过查看文件扩展名)
谢谢您的帮助

UPD
validate :uploadfile_validation, :if => "uploadfile?"

def uploadfile_validation
    errors[:uploadfile] << "should be less than 1MB" if uploadfile.size > 1.megabytes
end

最佳答案

这是我的尺寸验证代码(我将CarrierWave用于上传)。

  validate :picture_size_validation, :if => "picture?"

  def picture_size_validation
    errors[:picture] << "should be less than 1MB" if picture.size > 1.megabytes
  end

干杯。

10-06 04:52