除了动态文件大小限制之外,还有validates_attachment_size吗?这是一个例子:
class Document < ActiveRecord::Base
belongs_to :folder
has_attached_file :document
validates_attachment_size :document, :less_than => get_current_file_size_limit
private
def get_current_file_size_limit
10.megabytes # This will dynamically change
end
end
我已经尝试了这个,但我一直收到错误说“未知方法”。 Lambdas和Procs也不起作用。有没有人试过这个?感谢
答案 0 :(得分:6)
Paperclip不允许将函数作为大小限制参数传递。所以你可能需要编写自定义验证:
validate :validate_image_size
def validate_image_size
if document.file? && document.size > get_current_file_size_limit
errors.add_to_base(" ... Your error message")
end
end
答案 1 :(得分:2)
远射......
validates_attachment_size :document, :less_than => :get_current_file_size_limit
通常在传递函数时,您必须传递符号而不是实际函数。
答案 2 :(得分:0)
现在有一个内置的Paperclip验证:
validates_attachment_size :mp3, :less_than => 10.megabytes
将mp3更改为您的回形文件的名称。
有关更多有用的Paperclip提示,请参阅此帖子:http://thewebfellas.com/blog/2008/11/2/goodbye-attachment_fu-hello-paperclip