У меня, видимо, огромная проблема при переходе с версии плагина 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
Имеет ли это смыслкто-нибудь?Почему плагин работает, но жемчужина той же версии просто разрушает все?
Обновление : у меня также нет доступных задач по сбору граблей.Есть идеи?