您将如何在 Mongoid 关系上实现空对象模式?
Class Owner
include Mongoid::Document
embeds_one :preference
end
大多数所有者不会有偏好,因此我希望他们有一个 NullPreference,如 Ben Orenstein 的精彩演讲中所述。
我想要的是这样的:
class NullPreference
def name
'no name'
end
end
owner = Owner.new
preference = owner.preference
preference.name
=> 'no name'
我在 ActiveRecord 中发现了一个关于同一事物的相关问题,但没有答案。
编辑:我使用的是 Mongoid 2.6,否则我可以使用autobuild: true
并获得一个真实的 Preference
并使用默认值。