问题是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'
Run Code Online (Sandbox Code Playgroud)
设置主要是以下内容:
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 = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用rvm在运行Snow Leopard的Mac上安装Ruby 1.9.2.
我的.bash_profile包含
ARCHFLAGS="-arch x86_64"
Run Code Online (Sandbox Code Playgroud)
要安装ruby,我运行:
rvm install 1.9.2 -C --enable-shared
Run Code Online (Sandbox Code Playgroud)
编译时出错.这是make.error.log:
[2010-01-20 10:03:00] make
ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1
Run Code Online (Sandbox Code Playgroud)
编辑:
我从源代码安装了readline并尝试了这样的安装:
rvm install 1.9.2 -C --enable-shared,--with-readline-dir=/usr/local
Run Code Online (Sandbox Code Playgroud)
这导致了与以前相同的错误.
rcltklib.bundle文件的位置是:
/usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle
Run Code Online (Sandbox Code Playgroud)
(我认为这个文件是Ruby OSX安装的一部分)