У меня есть модель, Entity.Mongoid: Добавлен хэш к модели, но не могу написать ему
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
Но эта ошибка с неопределенным методом получает хэш. Если я попытаюсь создать для него инициализатор, чтобы установить значения в существующем документе, он ошибется с той же ошибкой. Что я делаю не так?
Initializer выглядит следующим образом:
e = Entity.first
e.write_attribute(:z, {})
Благодарности
Вы можете публиковать сообщения об ошибке? –
NoMethodError: undefined method 'get 'for {}: Hash \t от /Users/wflanagan/sites/marketfu/vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/field.rb:50:in' get ' \t из /Users/wflanagan/sites/marketfu/vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/attributes.rb:64:in 'read_attribute' \t из/Users/wflanagan/сайтов/marketfu /vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/fields.rb:55:in 'block in create_accessors ' \t/Пользователи/wflanagan/sites/marketfu/app/models/ – Williamf