Получение коллекции смешанных типов из единой таблицы наследования с помощью Rails - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть следующее:

class JiraIssue < ActiveRecord::Base
end

class Incident < JiraIssue
end

Позже в моем коде я хочу позвонить JiraIssue.all и получить смешанную сумку из Incident и JiraIssue экземпляров. Но так, как написано сейчас, я могу вернуть только один тип (или другой).

Есть ли какое-либо решение для этого?

1 Ответ

0 голосов
/ 06 ноября 2019

вы можете "статически привести" ваше подмножество инцидентов из класса JiraIssue в Incident, используя becomes (https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-becomes).

. Код будет выглядеть примерно так:

jira_issue # type: JiraIssue

if jira_issue.isIncident?
   return jira_issue.becomes(Incident)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...