Итак, вот пример класса
class Company < ActiveRecord::Base
has_many :investments
has_many :vc_firms, through: :investments, source: :investor, source_type: 'VentureFirm'
has_many :angels, through: :investments, source: :investor, source_type: 'Person'
end
@company.angels и @company.vc_firms работают должным образом. Но как я буду иметь @company.investors, которые состоят из обоих типов источников? Это будет работать для всех полиморфизмов в столбце инвестора таблицы "Инвестиции"? или, возможно, способ использования области слияния всех source_type?
Инвестиционная модель выглядит следующим образом:
class Investment < ActiveRecord::Base
belongs_to :investor, polymorphic: true
belongs_to :company
validates :funding_series, presence: true #, uniqueness: {scope: :company}
validates :funded_year, presence: true, numericality: true
end
Ангелы связаны через модель Person
class Person < ActiveRecord::Base
has_many :investments, as: :investor
end
Соответствующие ассоциации моделей финансовой организации:
class FinancialOrganization < ActiveRecord::Base
has_many :investments, as: :investor
has_many :companies, through: :investments
end