试图找出针对此特定问题的最佳ActiveRecord继承策略:
我有一个抽象类,让我们用以下方法/属性称它为Message
。
Message
|- recipient
|- sender
\ body
我有两个子类
ColorMessage < Message
|- first_color
|- second_color
\ body (returns "#{sender.name} says #{first_color} > #{second_color}")
WeatherMessage < Message
|- current_weather_adverb
\ body (returns "#{sender.name} enjoys #{current_weather_adverb} weather")
我希望能够为所有Message
运行查询并显示他们的身体,而不必担心他们的具体类型。基本上将Message
视为接口。
我熟悉STI,在这种情况下,这是正确的解决方案吗?
感谢您的帮助!
答案 0 :(得分:1)
我认为这适用于单表继承(STI(。
您可以要求Message.all或ColorMessage.all,rails会为您处理对象投射。