Динамический размер вложения для скрепки (рельсы) - PullRequest
3 голосов
/ 28 апреля 2010

Есть ли в любом случае значение 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 тоже не работают. Кто-нибудь когда-нибудь пробовал это? Спасибо

Ответы [ 3 ]

6 голосов
/ 28 апреля 2010

Скрепка не позволяет передавать функцию в качестве параметра ограничения размера. Поэтому вам, вероятно, нужно написать пользовательскую проверку:

  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
2 голосов
/ 28 апреля 2010

Длинный выстрел ...

validates_attachment_size :document, :less_than => :get_current_file_size_limit

Обычно при передаче функции необходимо передать символ, а не реальную функцию.

0 голосов
/ 16 ноября 2010

Теперь есть встроенная проверка Paperclip:

validates_attachment_size :mp3, :less_than => 10.megabytes

Измените mp3 на любое имя вашего скрепленного файла.

См. Этот пост для более полезных советов Скрепка: http://thewebfellas.com/blog/2008/11/2/goodbye-attachment_fu-hello-paperclip

...