2010-09-01 49 views
1

也就是說,如果app/models/animal.rb使用Mongoid(Ruby on Rails的MongoDB映射器),如果Cat繼承了Animal,我們是否需要設置一個類型?

class Animal 
    include Mongoid::Document 
    field :name, :type => String 
    field :birthday, :type => Time 
end 

,然後在app/models/cat.rb

class Cat < Animal 
    include Mongoid::Document 
    field :nail_length, :type => Float 
end 

那麼你需要在動物設置某種「類型」記住它是一隻貓,或者是它自動?

+0

強烈建議通過mongoid文檔閱讀,他們都寫得很好,很容易理解 – 2010-09-01 00:14:05

回答

1

附加屬性_type存儲爲了 以確保當從返回正確的 文檔數據庫加載 。這也對 適用於嵌入文檔 Circle,Rectangle和Shape。字段 和驗證是沿着 階層繼承的,但不起來。子類 包含其父項的所有字段和 驗證,但不反之亦然。

http://mongoid.org/docs/inheritance/

相關問題