我有一个用户模型:
class User < ActiveRecord::Base
has_many :projects, dependent: :destroy
end
和一个项目模型:
class Project < ActiveRecord::Base
belongs_to :user
end
如果我想aUser
可以资助Projects
,aProject
可以被很多人资助Users
怎么办?
这意味着我得到了一个多对多的关系,我需要一个额外的中间表。叫它user_projects
:
class UserProject < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
但是在实施第三个模型之前,我该如何处理模型之间的先前关系?
如果我有中间表,我如何知道哪个项目属于哪个用户?
我会按以下方式修改表格吗?
class User < ActiveRecord::Base
has_many :projects, through: :user_project, dependent: :destroy
has_many :user_projects
end
class Project < ActiveRecord::Base
has_many :user_projects
has_many :users, through: user_project
end