在mongoid中使用create时如何定义数组字段?

时间:2012-10-28 21:31:32

标签: mongoid

我正在尝试创建一个种子文件来填充我的mongo数据库。当我尝试定义数组字段值时,以下语法创建nil值。我正在使用mongoid v3.0.9。我究竟做错了什么?

以下示例在我将它们放入种子文件时不起作用:

User.create(name:'name', test_array_field:'[123,123]')
User.create(name:'name', test_array_field:[123,123])
User.create(name:'name', test_array_field:[123,123].to_a)

我在课堂上定义了这样的字段:

field :test_array_field, type: Array

2 个答案:

答案 0 :(得分:6)

你的第二种语法对我有用。

class User
  field :roles, type: Array, default: []
end

u = User.create roles: ['superadmin']
u.new_record? # => false
u.roles # => ["superadmin"]

答案 1 :(得分:2)

试试这个:

class Foo
  include Mongoid::Document

  field :bar, :type => Array, :default => []
  field :baz, :type => Hash, :default => {}
end