我想用 Carrierwave 上传单个图像,问题是,它正在上传文件并将其保存到目录 uploads 中,在此文件夹中创建另一个名为 tmp 的文件夹,在 tmp 文件夹中创建另一个包含图像的文件夹. 问题是即使图像已完全上传到该文件夹并且我已经可以使用 feh(或任何其他图像查看器)打开此图像,它似乎也不会停止上传和上传和上传。
这就是我的控制器的样子。
get "/new" do
protect!
erb :new
end
post "/new" do
protect!
@user = User.get(session[:user_id])
image = @user.image.new(
:description => params[:description],
:image => params[:image]
)
# image.save
"NEVER REACHED!"
end
(文本“从未到达!”根本不会显示,我不知道为什么......)
这是我的模型:
class ImageUploader < CarrierWave::Uploader::Base
def extensions_white_list
%w(jpg jpeg gif png)
end
storage :file
end
class Image
include DataMapper::Resource
property :id, Serial
property :description, Text
property :image, String, :auto_validation => false
mount_uploader :image, ImageUploader
end
class User
include DataMapper::Resource
property :id, Serial
has n, :post
end
因此,正如已经提到的那样,永远不会达到“从未达到”的文本。任何想法为什么?
此外,我总是收到警告:
Defining property for an uploader is deprecated at /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
同时我不知道为什么...
更新:只要我不在主控制器中取消注释 image.save ,它现在就可以工作,但我实际上需要取消注释,任何想法如何解决这个问题?