2011-03-30 166 views
7

我有这样mongoid继承问题

class Canvas 
    include Mongoid::Document 
    field :name 
    referenced_in :hero 
end 

class Browser < Canvas 
    field :version, :type => Integer 
end 

class Hero 
    include Mongoid::Document 
    field :name 
    references_many :canvases 
end 

如何建立从英雄对象refered布劳尔对象模型。

所有我想要做的就是

h = Hero.create!({:name => 'Aston'}) 
h.browsers.build 

但是它给了我一个错误

undefined method `browsers' for #<Hero _id: 4d92c8fc1426960fff000005, name: "Aston"> 

我这么想吗?

感谢

回答

4

试试这个

h.canvases.build({},Browser) 

这个工程的mongoid.2.0.0.rc7

+2

注意到这个答案只适用Mongoid 2.0.0rc7和mongoid-2.0不起作用.0.beta.19。 – Gagan 2011-03-30 06:47:38

+0

我通过http://modetojoy.blogspot.com/2010/01/inheritance-in-mongoid.html找到了答案 – 2011-05-12 03:48:12