0

私には2つのモデルがあります。チームとプロジェクト。私が作成しようとしているアプリケーションを使用すると、チームは新しいプロジェクトを作成できます。チームが別のチームと共同プロジェクトを行う場合があります。

では、それらの間で使用する必要がある正しい関連付けは何ですか?今、私は持っています

team.rb

has_many :projects

project.rb

belongs_to :team

RoRガイドは2つのモデルと弱いモデルを使用しているため、「has_and_belongs_to_many」の関連付けが機能するかどうかはわかりません。

4

1 に答える 1

0

次のように結合テーブルも作成すると、has_and_belongs_to_many 関連付けを 2 つのモデルで使用できます。

class AddTeamsProjectsJoinTable < ActiveRecord::Migration
  def self.up
    create_table :teams_projects, :id => false do |t|
    t.integer :teams_id
    t.integer :projects_id
  end
end

  def self.down
    drop_table :teams_projects
  end
end

次に、モデルで:

team.rb

has_and_belongs_to_many :projects

project.rb

has_and_belongs_to_many :teams

その後、@team.projects を使用して 1 つのチームのすべてのプロジェクトにアクセスするか、@project.teams を使用して 1 つのプロジェクトのすべてのチームにアクセスできます。

于 2012-07-25T01:18:03.173 に答える