class Part
include Mongoid::Document
belongs_to :type
# data
end
class Type
include Mongoid::Document
has_many :parts
field :name
# data
end
假设我有类似上面的设计。我需要以一种独立于任何Part的方式存在它,因为这是逻辑结构,因为类型可以改变,我希望能够集中进行。但是当我找到一个Part时,我想将它的关联类型嵌入到返回的文档中。我想这样做是因为几乎在任何情况下我都需要使用Part中的数据,我需要来自其相关Type的数据。当我在客户端获得JSON时,它只包含type_id
但不包含类型数据。是否有任何自动包含Part in JSON中的数据的数据,同时保留了引用的好处?
答案 0 :(得分:0)
在评论中,mu回答说可以覆盖模型的as_json方法。
我的实施如下:
class Part
include Mongoid::Document
belongs_to :type
def as_json options = {}
if (options.has_key? :include and not options[:include].has_key? :type) or
not options.has_key? :include
options[:include] = :type
end
super.as_json(options)
end
end