has_many методы ассоциативных таблиц в рельсах.Как получить данные из таблицы ассоциации? - PullRequest
0 голосов
/ 11 декабря 2011

Я создаю приложение, которое позволяет пользователям создавать команды, а затем добавлять к ним участников.

class User < ActiveRecord::Base
    has_many :memberships
    has_many :teams, :through => :memberships
end

class Team < ActiveRecord::Base
    has_many :memberships
    has_many :users, :through => :memberships
end

class Membership < ActiveRecord::Base
    belongs_to :team
    belongs_to :user
end

Таблица членства содержит ID, TEAM_ID, USER_ID, PERMISSIONS

У меня естьполучить доступ как к Team.users, так и к Team.memberships, но мне нужно объединить их, чтобы я мог получить доступ к столбцу полномочий от пользователя следующим образом:

Team.users.membership.permissions

ИЛИ

Team.users.permissions

Но я не могу понять это, хотя я предполагаю, что есть простой ответ.Ассоциация has_many между пользователями и участниками работает, так как я могу получить доступ к пользователям из команды, используя Team.users.Но я не понимаю, как и почему столбец Permissions из Membership также не присоединяется к объекту пользователя.Любая помощь по этой теме высоко ценится.

1 Ответ

2 голосов
/ 11 декабря 2011

Поскольку пользователи подключаются к команде только через членство, не просто Team.memberships.map(&:permissions) код, который вам нужен?

...