2010-04-27 49 views
3

反正有没有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也不起作用。有没有人试过这个?由于

回答

6

回形针不允许将函数作为大小限制参数传递。所以,你可能需要编写自定义的验证:

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 
+0

这工作得很好。谢谢!我希望会有一些更好的方式,但我现在不想。也许我会向Paperclip提交一个补丁。 :) – CalebHC 2010-04-27 23:13:07

2

远投......

validates_attachment_size :document, :less_than => :get_current_file_size_limit

通常通过你要通过符号,而不是实际功能的功能时。

+0

是的,我认为可能的工作,但一无所获。虽然谢谢! – CalebHC 2010-04-27 23:11:21