我有一个项目,其中设置了以下模型:
class User < ActiveRecord::Base
has_and_belongs_to_many :projects
has_and_belongs_to_many :user_roles
class Project < ActiveRecord::Base
has_and_belongs_to_many :users
has_many :user_roles
class UserRole< ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :project
当我想要返回用户参与的每个项目以及他们在项目上拥有的用户角色(包括他们已经处理过的任何项目以及没有分配用户角色)时,我的问题就出现了
我有一种感觉has_many :through
可能有用,但我不确定它是如何工作的。任何想法都将不胜感激!
答案 0 :(得分:1)
class User < ActiveRecord::Base
has_many :user_roles
has_many :projects, :through => :user_roles
class Project < ActiveRecord::Base
has_many :user_roles
has_many :users, :through => :user_roles
class UserRole< ActiveRecord::Base
belongs_to :user
belongs_to :project