С учетом следующего пользователя <> Project <> Permissions <> Roles Model, как получить членов команды проекта? - PullRequest
1 голос
/ 18 сентября 2010

Учитывая следующее:

class User < AR::B 
  has_many :permissions 
  has_many :projects, :through => :permissions 
end 
class Project < AR::B 
  has_many :permissions 
  has_many :users, :through => :permissions 
end 
class Role < AR::B 
  has_many :permissions 
end 
class Permission < AR::B 
  belongs_to :user 
  belongs_to :project 
  belongs_to :role 
end

Я заинтересован в создании SCOPE в модели проекта (project.rb), который возвращает всех участников проекта (на основе таблицы разрешений <> users & role)таблицы.

Требуемый вывод: user.name, role.name

Вот моя область действия в модели, которая не возвращает желаемый вывод:

class Project < ActiveRecord::Base 
has_many :permissions 
has_many :users, :through => :permissions 
 #Playing with Scopes 
  scope :teammembers, 
  Project.permissions.joins(:users, :roles) 
end 

пытаетсячтобы выяснить, как получить вывод с ActiveRecord. Спасибо

1 Ответ

0 голосов
/ 29 марта 2011
Class Project < AR:B
...
    def members
        User.joins(:permissions => :project).where(:permissions => {:projects => self})
    end
...

Здесь self можно заменить на некоторый идентификатор или self.id, если вы хотите изменить :projects на :project_id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...