0
Учитывая модель Mongoid:Значения по умолчанию для Mongoid Hash поля аксессора
class Counts
include Mongoid::Document
# lists of tag counts
field :tags, type: Hash, default: {}
end
c = Counts.new(tags = {new: 12, old: 7})
Я хотел бы переопределить c#tags[]
так, что если ключ не установлен на tags
поля, он должен вернуть значение по умолчанию 0
вместо из nil
, как это:
c.tags['ancient']
# => 0
Интересно, но это только установит значение по умолчанию, когда ни один не будет сохранен (т.е. когда поле БД все еще 'nil'). Как только одно значение будет установлено, все остальные значения вернутся к нулю. Я думал об определении хэш-аксессора в поле «теги», например 'def tags [] (key)', но похоже, что мне, возможно, придется наследовать хэш-класс, чтобы сделать такое изменение –