2011-02-23 25 views
5

समस्या निम्न त्रुटि है जो 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] 

अगर मैं इस लाइन को हटा दें। सबकुछ अपेक्षित के रूप में काम करता है।

+0

फ़ाइल अपलोड हो रही है ठीक से अपलोड हो रहा है – Zimbabao

उत्तर

7

ठीक है। मैंने पर्याप्त गहरे निशान का पालन नहीं किया: समस्या ImageMagick में एक अनुपलब्ध जेपीजी-प्रतिनिधि था। तो स्वाभाविक रूप से जेपीईजी फाइलों की प्रसंस्करण विफल रही।

समाधान स्रोत से ImageMagick को पुनर्स्थापित करना था।

फिर भी यह काफी अपारदर्शी है जब मोंगोइड एक त्रुटि फेंकता है जिसे कैरियरवेव से बुलाया जाता है क्योंकि इसे छवि मैगिक द्वारा ट्रिगर किया गया था।

फिर भी। पूर्वदर्शी में यह काफी स्पष्ट है :-)

+0

मैंने अपनी परियोजनाओं को अपने पुराने मैकबुक से अपने नए मैकबुक प्रो में स्थानांतरित कर दिया और यह समस्या थी। जैसा कि आपके मामले में मुझे ImageMagick इंस्टॉल करने की भी आवश्यकता है क्योंकि यह मेरी फ़ाइलों को पुरानी मशीन से स्थानांतरित करने पर स्थापित नहीं किया गया था। अपना समाधान पोस्ट करने के लिए धन्यवाद! मुझे कुछ समय बचाया। – sholsinger

संबंधित मुद्दे