0

画像を保存するためにcarrierwave_mongoidを追加しています。画像をmongoに保存しました。データは次のようになります。

 { "contentType" : "image/jpeg", "length" : 512659, "chunkSize" : 4194304, "uploadDate" : ISODate("2013-01-26T00:00:00Z"), "md5" : "3d44aa8fcfba7cae34fe9a592407410b", "filename" : "uploads/deal/image/295/15a11db8e441c610330af53a77e2b136.jpg", "_id" : 5 }

私はストーリーモデルを持っています:

class Deal
  include Mongoid::Document
  include Mongoid::Timestamps

  field :image,        :type => String
  field :status,       :type => Integer

  mount_uploader :image, ImageUploader
end

私のImageUploaderコードはここにあります:

class ImageUploader < CarrierWave::Uploader::Base
...
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

今、私はmongodbから画像を表示したいのですが、私が持っているビューで

<%= image_tag(@deal.image.url)  %>

最後に、画像がビューに表示されず、次のエラーが発生します。

ActionController::RoutingError (No route matches [GET] "/assets/uploads/deal/image/295/15a11db8e441c610330af53a77e2b136.jpg"):

Carrierwave_mongoid を介して画像を読み取る方法を知りたい

4

1 に答える 1

0

ActionController::RoutingErrorRails アプリケーションがそのようなリクエストを処理しないことを示します。

コントローラーへのルートを定義して、gridfs を照会し、イメージを送信します。さらに、静的ファイルなどのリクエストを処理しないように Nginx を構成する必要がある場合があります。

于 2013-04-27T03:56:37.993 に答える