намагаючись з'ясувати найкращу стратегію успадкування 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
як інтерфейс.
Я знайомий з ІПСШ, чи є це правильне рішення в даному випадку?
Спасибі за вашу допомогу!
Відповіді:
1 для відповіді № 1Я вважаю це належним використанням для однонаступного спадкування (STI (.
Ви можете попросити Message.all або ColorMessage.all, і рейки підберуть для вас об'єкт.