0

私はマスメディアと呼ばれるモデルを持っており、このモデルは会社に属しています。

私たちには企業があります: PRIME、JURNAL、ASMEDIA、MEDIA GROUP

およびマスメディア: PRIME TV、JURNAL TV、JURNAL FM、PUBLIKA TV

と関係:

 Company                        TV Channel                    Company

1. **PRIME**        owner of   **PRIME TV**

2. **JURNAL**       owner of   **JURNAL TV**

3. **ASMEDIA**      owner of   **PUBLIKA TV**    owner of     **PRIME**

4. **MEDIA GROUP**                               owner of     **PRIME**

PRIMEという会社がASMEDIAMEDIA GROUPによって所有されているという問題が発生しました。これは、私が関連付ける必要があることを意味しますcompanycompanyこれが可能かどうかはわかりません。所有されている会社の company_id と、所有している会社の company_id の 2 つの列を持つテーブルが必要です。

どうすればこれを解決できますか?ありがとうございました。

編集

私が達成しようとしたことのスキームを作成しようとしました:

MediaGrup は会社 Prime の所有者であり、会社の株主 1 と 2 は MediaGrup の所有者です。

MediaGrup、Shareholder1 および 2 はすべて会社モデルです。

ここに画像の説明を入力

4

1 に答える 1

1

同じクラスのインスタンス間で関係を持つことができます。たとえばhas_oneandのbelongs_to場合 ( の場合も可能has_manyですが、例では 0..n の関連付けは表示されません):

class MassMedia< ActiveRecord::Base   # the table "mass_medias" must have a column 'owner_id'
  belongs_to :owner, :class_name => 'Company', :foreign_key => 'owner_id', :inverse_of => :mass_media
end

class Company < ActiveRecord::Base   # the table "companies" must have a column 'owner_id'
  has_one :mass_media, :inverse_of => :owner

  has_one :company, :inverse_of => :owner      
  belongs_to :owner, :class_name => 'Company', :foreign_key => 'owner_id', :inverse_of => :company
end
于 2012-05-21T19:28:28.310 に答える