2012-07-25 111 views
0

我有兩個模型;團隊和項目。我嘗試創建的應用程序讓團隊創建一個新項目。有時候,一個團隊可以與另一個團隊合作。Ruby on Rails 3:has_and_belongs_to_many兩個不同的模型

那麼我應該在他們之間使用什麼正確的關聯? 現在,我有

team.rb

has_many :projects 

project.rb

belongs_to :team 

我不知道,如果 「has_and_belongs_to_many」 聯想會做,因爲RoR guide使用兩種型號後加弱模型

回答

0

如果您還創建瞭如下所示的連接表,則可以使用has_and_belongs_to_many與兩個模型的關聯:

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一個團隊。項目或所有團隊與@ project.teams一個項目