0

Rails 3とDragonfly(または実際に機能するもの)を使用して、複数のドラッグアンドドロップアップロードファイルシステムを作成しようとしています

私は自分のファイルが params ハッシュを介してコントローラーに入っているところにいて、それを ActionDispatch::Http::UploadedFile として取得できるので、モデルの属性イメージにプッシュするだけでよいと思いましたが、うまくいきません

この私の画像モデル:

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

これは私のコントローラーで機能すると思いました:

def createImage

@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 に答える