rails 3.1来自同一模型的记录之间的关系

时间:2012-05-21 18:06:24

标签: ruby-on-rails ruby-on-rails-3.1

我有一个名为massmedia的模型,这个模型属于公司。

我们有公司: PRIME,JURNAL,ASMEDIA,MEDIA GROUP

和massmedia: 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 ASMEDIA MEDIA GROUP 所有,这意味着我必须关联{{1} } company并且我不确定是否可以这样做,甚至为两家公司之间的关系创建一个新表也不好,因为我需要一个包含2列的表,拥有该公司的company_id和onehwo的company_id拥有它。

任何想法如何解决这个问题?谢谢。

修改

我试图创建一个我试图完成的计划:

MediaGrup是Prime公司的所有者 公司股东1和2是MediaGrup的所有者

所有这些:MediaGrup,股东1和2都是公司模式。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在同一个类的实例之间建立关系。例如,使用has_onebelongs_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