【发布时间】:2012-06-04 08:07:03
【问题描述】:
我正在将我的应用程序升级到基于 Ruby 1.9 的 Rails 3.2。我不得不放弃attachment_fu。 Carrierwave 似乎是明显的替代品。在这个阶段,我正在将文件上传到文件系统(还没有云文件)。
我在 Lion,XCode 4.3.2,安装了命令行工具。运行:
$ brew doctor
# Your system is raring to brew.
我可以在此配置中上传和调整图像大小:
- 导轨 3.1.4
- 红宝石 1.8.7
- 载波0.5.8
- mini_magick 3.4
我可以在新配置中上传图片:
- 导轨 3.2.3
- ruby 1.9.3(或 1.9.2)
- 载波0.6.2
(后跟$ bundle update)但使用mini_magick 调整大小会返回此错误消息:
"File Failed to manipulate with MiniMagick, maybe it is not an image Original Error: MiniMagick::Invalid", where File is the carrierwave uploader.
FileUploader 包含:
include CarrierWave::MiniMagick
def store_dir .. end # the shipped default
process :resize_to_limit => [500, 600]
我的附件类(带有mount_uploader :file, FileUploader)是Portrait、ReferenceLetter 和其他附件类的父类。每个附件类都继承自Attachment,分别是:polymorphic => true 和belongs_to :attachable(用户),而has_many :portraits、:reference_letters 等:as => :attachable。
这些都不起作用(从carrierwave的已知问题页面链接):
Why is this RMagick call generating a segmentation fault?
我不想按照这里的建议手动安装 ImageMagick:
carrierwave + mini_magick gems = not an image error
我正在使用 Homebrew。帮助会很棒。谢谢。
【问题讨论】:
-
我得到了它的工作,但忘记在这里发布解决方案。我相信我的问题是名称冲突。我的文件上传器被称为 FileUploader。用 AttachmentUploader 替换它修复了(或者我认为)问题:“文件无法使用 MiniMagick 操作,也许它不是图像?原始错误:MiniMagick::Invalid”不幸的是,我现在不是 100% 确定,它已经一年前。如果有人使用名为 FileUploader 的上传器遇到此问题并使用其他名称的上传器修复它,请在此处确认。
标签: ruby-on-rails-3.2 carrierwave ruby-1.9 minimagick