0

我正在尝试使用 Rails 3 和 Dragonfly(或任何可以实际工作的东西)制作一个多重拖放上传文件系统

我的文件通过参数哈希进入我的控制器,我可以将它作为 ActionDispatch::Http::UploadedFile 检索,所以我认为我要做的就是将它推送到我的模型的属性图像中但是它不起作用

这是我的图片模型:

class Picture < ActiveRecord::Base
   image_accessor :image
   attr_accessible :image_name, :image_uid, :title
end

我认为这将在我的控制器中工作:

定义创建图像

@new_picture = Picture.new
@new_picture.image = params[:pic]

if @new_picture.save
  render :json => { :picture => @new_picture }
end

好的,所以这奇怪地用 image_name nil 注册了记录,但是设置了 image_uid

但是,当我尝试访问我的图像 <%= image_tag @picture.image.url %> 时出现未找到错误

例如 :

Request     URL:http://localhost:3000/media/BAhbBlsHOgZmSSIhMjAxMi8wOS8yMi8xOV8zMF8yOF83MzBfZmlsZQY6BkVU
Request Method:GET
Status Code:404 Not Found

我正在使用 ruby​​ 1.9.3 和 rails 3.2.8

有任何想法吗 ?:D

4

1 回答 1

0

Dragonfly 需要先加载它的机架适配器,然后才能接受编码的 url 请求(如上面的请求)。加载它的最佳方法是config.encoding = "utf-8在您的/config/application.rb

config.middleware.insert 0, 'Rack::Cache', {:verbose     => true,:metastore   => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/meta"),:entitystore => URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/body")} unless Rails.env.production?
config.middleware.insert_after 'Rack::Cache', 'Dragonfly::Middleware', :images

请注意,您还需要 Rack-Cache gem。

希望这可以帮助!

于 2012-10-08T21:08:33.253 回答