Rails活动记录关联问题

时间:2012-05-08 06:37:20

标签: ruby-on-rails ruby-on-rails-3 activerecord associations models

我有一个项目,其中设置了以下模型:

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可能有用,但我不确定它是如何工作的。任何想法都将不胜感激!

1 个答案:

答案 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