我在Rails 3中使用mongoid,我碰到這個問題來了:如何在Mongoid中覆蓋繼承模型中的embeds_many?
比方說,我有一個形狀模型:
class Shape
include Mongoid::Document
field :x, type: Integer
field :y, type: Integer
embedded_in :canvas
end
而且畫布模型(有很多形狀):
class Canvas
include Mongoid::Document
field :name, type: String
embeds_many :shapes
end
然後Canvas模型「有許多形狀」。
我從畫布繼承瀏覽器型號:
class Browser < Canvas
field :version, type: Integer
end
然後Browswer模型應該「有許多形狀」了。
不過,現在我已經從外形繼承了一個「圈」模式:
class Circle < Shape
field :radius, type: Float
end
而且我想讓瀏覽器模式「有很多圈」,而不是「有許多形狀」。也就是說,我想將Browser模型中的「有許多」關係從「有許多形狀」改寫爲「有許多圓形」。
我應該怎麼做?
感謝您的澄清。我擔心如果Canvas有一個方法來計算Shape,那麼Browser將能夠使用該方法來計算Circle(假設Browser沒有其他類型的Shape)。也許最好的探索方法是編寫代碼:) – lakeskysea