2011-12-14 83 views
1

我持有的社交網絡的模式。即(推特,臉書,...)。然後我需要有用戶模式和公司模式兩者的has_many社交。我需要使用的has_many:通過關係即。Rails的關係模型

  • 用戶可以有很多社交
  • ,公司可以有許多社交
  • 而社交屬於用戶和公司

將這樣的事情是正確的?

class Social < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :company 
end 

class User < ActiveRecord::Base 
    has_many :social_networks 
    has_many :socials, : through => :social_networks 
end 

class Company < ActiveRecord::Base 
    has_many :social_networks 
    has_many :socials, : through => :social_networks 
end 

我需要模特SocialNetworks嗎?

然後我會在2連接表:

socials_users & companies_socials

這將是這樣做的正確方法?

我不認爲更容易has_and_belongs_to_many將這項工作?

希望有一個可以擺脫以正確的方式有些光做到這一點!

回答

0

測試後有使用HABTM即沒有問題。

class Social < ActiveRecord::Base 
    has_and_belongs_to_many :users 
    has_and_belongs_to_many :companies 
end 

class User < ActiveRecord::Base 
    has_and_belongs_to_many :socials 
end 

class Company < ActiveRecord::Base 
    has_and_belongs_to_many :socials 
end 

然後創建2個連接表

socials_users & companies_socials