2010-04-27 47 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