2011-12-14 5 views
1

私はソーシャルネットワークを保持するモデルを持っています。すなわち(twitter、facebook、...)。私はその後、ユーザーモデルと企業モデルの両方にhas_manyソーシャルを持たせる必要があります。私はhas_many:throughの関係を使用する必要がありますか?Railsリレーションシップモデル

  • ユーザーは多くの社交
  • このようなものは、右のだろうA社は、多くの社交
  • を持つことができ、社会科は、ユーザーや企業

に属しているの?持つことができますか

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 

モデルソーシャルネットワークは必要ですか?

その後、私は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

を作成