我有两个型号;团队和项目。我尝试创建的应用程序允许团队创建一个新项目。有时,团队可以与另一个团队进行联合项目。
那么我应该在它们之间使用的正确关联是什么? 现在,我有
team.rb
has_many :projects
project.rb
belongs_to :team
我不确定“has_and_belongs_to_many”关联是否会发生,因为RoR guide使用了两个模型加上弱模型
答案 0 :(得分: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.projects访问一个团队的所有项目,或使用@ project.teams访问一个项目的所有团队