모델이 있습니다. 엔티티가 있습니다.몽고 : 모델에 해시를 추가했지만 쓸 수 없습니다.
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
하지만이 오류는 정의되지 않은 메서드로 인해 해시를 가져옵니다. 기존 문서의 값을 설정하기 위해 이니셜 라이저를 만들려고하면 같은 오류가 발생하여 오류가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 그것을 정렬
e = Entity.first
e.write_attribute(:z, {})
감사
오류를 게시 할 수 있습니까? –
NoMethodError : {}에 대해 정의되지 않은 메소드'get ':\t /Users/wflanagan/sites/marketfu/vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/field.rb:50:in'에서 가져 오기/사용자/wflanagan/사이트/marketfu에서 \t '/Users/wflanagan/sites/marketfu/vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/attributes.rb:64:in'read_attribute에서 \t' /vendor/bundle/bundler/gems/mongoid-7b3cfd92c5ab/lib/mongoid/fields.rb:55:in 블록에서 'create_accessors' \t/Users/wflanagan/sites/marketfu/app/models/ – Williamf