我正在将STI用于一个项目,我希望每个模型都有一个返回哈希的方法。该哈希是该模型的特定配置文件。我希望每个子模型检索其父级的哈希并将其添加到自己的哈希中。这是下面的一个例子
class Shape
include Mongoid::Document
field :x, type: Integer
field :y, type: Integer
embedded_in :canvas
def profile
{ properties: {21} }
end
end
class Rectangle < Shape
field :width, type: Float
field :height, type: Float
def profile
super.merge({ location: {32} })
end
end
我正在试图弄清楚如何让Rectangle的profile方法返回Shape自己的+。它应该导致
(properties => 21, location => 32)
知道如何从继承的子进程中访问父进程吗?它只是超级?在过去的几天里一直坚持这一点。任何帮助非常感谢!
答案 0 :(得分:0)
是的,就这么简单。 :-)你在{21}
和{32}
中只得到了几个不正确的文字。
以下作品:
class Shape
def profile
{ properties: 21 }
end
end
class Rectangle < Shape
def profile
super.merge({ location: 32 })
end
end
rect = Rectangle.new
puts rect.profile # => {:properties => 21, :location => 32}