gpt4 book ai didi

ruby - Carrierwave - 处理图像时出错

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:46 30 4
gpt4 key购买 nike

问题是在 mongoids save! 操作中抛出的以下错误。

Mongoid::Errors::Validations: Validation failed - Img failed to be processed.
~/.rvm/gems/ruby-1.8.7-p249/gems/mongoid-2.0.0.rc.7/lib/mongoid/persistence.rb:234:in `fail_validate!'
~/.rvm/gems/ruby-1.8.7-p249/gems/mongoid-2.0.0.rc.7/lib/mongoid/persistence.rb:75:in `save!'
./app.rb:29:in `POST /upload'

设置主要如下:

require "sinatra"     # 1.1.2
require "mongoid" # 2.0.0.beta.19
require "rmagick" # 2.12.2
require "carrierwave" # 0.5.1
require "carrierwave/orm/mongoid"
require 'carrierwave/processing/rmagick'
....


Mongoid.database = Mongo::Connection.new('somehost', 1234).db('test')

class Uploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file

def store_dir
"uploads"
end

process :resize_to_fit => [80, 80]
end


class Image
include Mongoid::Document

mount_uploader :img, Uploader
end


....

post '/upload' do
@img = Image.new
@img.img = params[:file]
@img.save!
redirect '/'
end

故障是在处理的某个地方:

process :resize_to_fit => [80, 80]

如果我删除这一行。一切都按预期进行。

最佳答案

好的。我没有足够深入地跟踪这些痕迹:问题是 ImageMagick 中缺少 jpeg-delegate。所以 jpeg 文件的处理自然会失败。

解决方案是从源代码重新安装 ImageMagick。

当 Mongoid 抛出一个从 carrierwave 调用的错误时,它仍然是相当不透明的,因为它从 RMagick 中获取了一个由 ImageMagick 触发的错误。

还是。回顾起来很明显:-)

关于ruby - Carrierwave - 处理图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5097894/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com