Mongoid: добавлен хэш в модель, но не могу написать в нее - PullRequest
2 голосов
/ 15 января 2012

У меня есть модель, сущность.

class Entity
  include Mongoid::Document

  field :x
  field :y
  field :z, type => Hash, :default => {} # new field

end

Я добавил новое поле, хеш. Когда я пытаюсь использовать его, я получаю сообщение об ошибке. Мой код:

e = Entity.first
if e.z["a"] # if there is a key of this in it?
  e.z["a"] = e.z["a"] + 1
else
  e.z["a"] = 1
end

Но эта ошибка с неопределенным методом get для хэша. Если я пытаюсь создать для него инициализатор, чтобы установить значения в существующем документе, он выдает ошибку с той же ошибкой. Что я делаю неправильно?

Инициализатор выглядит так:

e = Entity.first
e.write_attribute(:z, {})

Спасибо

1 Ответ

1 голос
/ 16 января 2012

отсортировано.

Похоже, ответ заключается в том, чтобы установить в Mongoid 1.9.5 хэш:

field :hash_field, :type => Hash, :default => Hash.new

, и он может получить к нему доступ и инициализировать его.Не совсем понимаю, почему, но рад получить ответ!

...