2

пытается выяснить оптимальную стратегию наследования ActiveRecord для этой конкретной проблемы:Лучшая стратегия наследования 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, это правильное решение в этом случае?

Благодарим за помощь!

ответ

1

Я считаю это целесообразным использовать для однотабличного-наследования (STI (.

Вы можете попросить Message.all или ColorMessage.all и рельсов будут заботиться об объекте литья для вас.

Смежные вопросы