Проблемы с обновлением Paperclip из плагина в gem - PullRequest
1 голос
/ 22 июля 2011

У меня, видимо, огромная проблема при переходе с версии плагина Paperclip на версию gem в моем приложении.У меня сложилось впечатление, что не должно быть никакой разницы между плагином и гемом указанной версии.Тем не менее, я не рассматриваю это как простой переход.

Rails 2.3.11, Ruby 1.8.7

Используемая мной версия плагина - версия 2.3.3 и была обновлена2 августа 2010 года. Попытка обновить его до драгоценного камня той же версии в основном убила все мои тесты, так как я не смог загрузить заводскую модель, в которой не было загружено вложение.Оказалось, что validate_attachment_content_type также пытался проверить наличие вложения и не смог его найти, поэтому все просто начало ломаться.Опять же, с плагином нет проблем, и у меня не было проблем за все это время, когда мы его использовали.С другой стороны, эта проблема, кажется, не возникает после версии 2.3.4.Это целый другой набор проблем.

В основном, во всех версиях от 2.3.4 и выше я получаю проблему ниже:

can't convert nil into String
/home/joshua/.rvm/gems/ruby-1.8.7-p334@paperclip_upgrade/gems/paperclip-2.3.15/lib/paperclip/storage/s3.rb:163:in `extname'
/home/joshua/.rvm/gems/ruby-1.8.7-p334@paperclip_upgrade/gems/paperclip-2.3.15/lib/paperclip/storage/s3.rb:163:in `to_file'
/home/joshua/.rvm/gems/ruby-1.8.7-p334@paperclip_upgrade/gems/paperclip-2.3.15/lib/paperclip/attachment.rb:94:in `assign'
/home/joshua/.rvm/gems/ruby-1.8.7-p334@paperclip_upgrade/gems/paperclip-2.3.15/lib/paperclip.rb:279:in `avatar='
/home/joshua/railscamp/app/app/models/organization.rb:311:in `copy_membership'

во всех моих тестах, которые обращаются к моей модели организации.

Кажущийся нарушающий код в этом случае пытается клонировать модель членства от одной организации к другой, с * линией, являющейся вызывающим вызовом.

  def copy_membership(membership)
    m = membership.clone
    u = m.user.clone
    u.organization = self
    m.organization = self

    begin
      m.avatar = membership.avatar         *
    rescue RuntimeError
      m.avatar = nil
    end

    m.user = u
    m.save
    m
  end

Имеет ли это смыслкто-нибудь?Почему плагин работает, но жемчужина той же версии просто разрушает все?

Обновление : у меня также нет доступных задач по сбору граблей.Есть идеи?

1 Ответ

1 голос
/ 25 июля 2011

Как выяснилось, нам следовало проверить правильность имени файла, а не зависеть от общей ошибки времени выполнения для обнаружения присутствия аватара.

...