如何在rails 3中正确/高效地建模子类

时间:2011-02-22 17:42:26

标签: ruby-on-rails ruby-on-rails-3

在一个非常混乱的下午看着单表继承,多态关联等之后,我完全不知道如何正确地模拟一个相当简单的问题。

基本上,我需要代表不同类型的页面。各个页面类型将具有一组可变字段,因此我希望将它们存储为不同的模型。它们将共享某些数据(例如,它们当前是否已发布)和一些功能(例如,生成页面的静态版本)。在研究rails如何处理事物之前,我的自然反应是认为我需要一个Page对象,其他所有东西都是子类,但似乎这可能不是最好的事情。或者似乎我可以使用多态关联,但我很困惑如何实现这一点。

这是我第一次在实际项目中使用rails,虽然我认为我可以拼凑一些东西,但我真的很感激选择正确方法的一些帮助。

1 个答案:

答案 0 :(得分:3)

我认为你的想法正确。它是继承或多态模型。我认为多态模型是最好的方法。您将拥有一个Page模型,然后是User_Page,Blog_Page或任何您想要的。这些模型中的每一个都具有其他模型没有的属性。多态非常容易实现。请看一下:http://asciicasts.com/episodes/154-polymorphic-association