3

これは簡単で機能するはずです。MongoDB / BSON にはネイティブのバイナリ型があり、Moped ドライバーはそれをサポートしています。しかし、レールプロジェクトで足場を作成しようとすると

rails g scaffold image png:binary source:string

私はこのモデルを取得します:

class Image
  include Mongoid::Document
  field :png, type: Binary
  field :source, type: String
end

このエラーが生成されます:

uninitialized constant Image::Binary

Rails 3.2.8 と Mongoid 3.0.9 を使用。

4

1 に答える 1

12

Moped::BSON::Binary次のタイプを使用する必要があります。

class Image
  ...
   # mongoid version <= v3 
  field :png, type: Moped::BSON::Binary
   # mongoid version >= v4 
  field :png, type: BSON::Binary
end


i = Image.new
# mongoid version <= v3 
i.png = Moped::BSON::Binary.new(:generic, <image data> ) 

# mongoid version >= v4 
i.png = BSON::Binary.new(:generic, <image data> ) 
于 2012-10-28T05:39:12.743 に答える