为mongoid创建模型(RAILS)

时间:2016-05-04 22:02:13

标签: ruby-on-rails ruby mongodb mongoid

我必须将我的Rails应用程序连接到MongoDB,经过一些研究我发现了一个gem(mongoid)。 我的疑问是,如何创建模型? MongoDB上的集合如下所示:

{
    "_id": {
        "$oid": "56fbf7e577550f39a5aea04a"
    },
    "id_test": "225|1",
    "array_ex1": [],
    "array_ex2": [
        "obj_ex1": {
            "field_obj_1": "text1",
            "field_obj_2": "text2",
            "field_obj_3": "text3",
         }
     ],
    "obj_ex2": {
       "field1: "textex1",
       "field2: "textex2",
       "field3: "textex3",
    },
    "flg_test": true
}

3 个答案:

答案 0 :(得分:6)

它的方式相同......

rails generate model model_name

另外,您可以指定orm:

rails g active_record:model model_name
rails g mongoid:model model_name

模型文件看起来像这样:

class SomeModel
  include Mongoid::Document
  include Mongoid::Timestamps

  field :id_test, type: String
  field :array_ex1, type: Array
  field :array_ex2, type: Array
  field :obj_ex2
  field :flg_test, type: Boolean
end

答案 1 :(得分:1)

- >创建模型

rails generate model modelname

- >如果每条记录的数据字段不同(动态),则需要在模型中添加以下行

 include Mongoid::Attributes::Dynamic

- >创建记录

modelname.create({:field1 "valie1", :field2 "value2"})
modelname.create({:field1 "valie1"})

答案 2 :(得分:0)

您需要在app/models文件夹中创建模型。对于您的示例,它看起来像是:

app/models/singular_collection_name.rb

class SingularCollectionName
  include Mongoid::Document

  field :id_test, type: String
  field :array_ex1, type: Array
  field :array_ex2, type: Array
  field :obj_ex2, type: Hash
  field :flg_test, type: Boolean

end

其中SingularCollectionName是没有复数的集合名称。

您可以阅读更多here