1

我在一个项目中使用 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)

知道如何从继承的孩子访问父母吗?只是超级吗?最近几天一直坚持这个。非常感谢任何帮助!

4

1 回答 1

0

是的,就是这么简单。:-) 你刚刚在{21}and中有几个不正确的文字{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}
于 2013-10-17T13:27:58.340 回答