我有两个模型;团队和项目。我正在尝试创建的应用程序允许团队创建一个新项目。有时,一个团队可以与另一个团队进行联合项目。
那么我应该在它们之间使用什么正确的关联呢?现在,我有
团队.rb
has_many :projects
项目.rb
belongs_to :team
我不确定“has_and_belongs_to_many”关联是否会起作用,因为RoR 指南使用两个模型加上一个弱模型
我有两个模型;团队和项目。我正在尝试创建的应用程序允许团队创建一个新项目。有时,一个团队可以与另一个团队进行联合项目。
那么我应该在它们之间使用什么正确的关联呢?现在,我有
团队.rb
has_many :projects
项目.rb
belongs_to :team
我不确定“has_and_belongs_to_many”关联是否会起作用,因为RoR 指南使用两个模型加上一个弱模型
如果您还像这样创建连接表,则可以将 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
然后在你的模型中:
团队.rb
has_and_belongs_to_many :projects
项目.rb
has_and_belongs_to_many :teams
然后您可以使用@team.projects 访问一个团队的所有项目,或者使用@project.teams 访问一个项目的所有团队