【发布时间】:2012-06-23 15:04:23
【问题描述】:
我想用 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 的注释,它现在就可以工作了,但我实际上需要取消注释,有什么想法可以解决这个问题吗?
【问题讨论】:
标签: ruby sinatra datamapper carrierwave