加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Carrierwave – 处理图像时出错

发布时间:2020-12-17 03:27:08 所属栏目:百科 来源:网络整理
导读:问题是在mongoids上抛出以下错误保存!行动. 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
问题是在mongoids上抛出以下错误保存!行动.

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抛出一个从载波调用的错误时它仍然非常不透明,因为它从Imageagagick触发的RMagick中获取错误.

仍然.回顾展很明显:-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读