Пользовательские отношения включаются в запрос активной записи - PullRequest
1 голос
/ 23 января 2012

Моя User таблица подключена к Company через таблицу user_company.Теперь я хочу получить название компании, к которой принадлежит пользователь.Можете ли вы предложить запрос, который я должен использовать?

Пользователь
has_many :companies, :through => :user_companies

Компания
has_many :users, :through => :user_companies

Пользователь не принадлежит непосредственно компании

user.company.name выдает ошибку.Я хочу узнать название компании, к которой принадлежит пользователь.

Ответы [ 2 ]

1 голос
/ 23 января 2012

Поскольку у пользователя несколько компаний, это user.companies. Чтобы получить имена, вы можете сделать, например, user.companies.map(&:name)

0 голосов
/ 23 января 2012

@user.companies предоставит вам массив всех компаний, с которыми связан пользователь.
Теперь вы можете просто перебрать массив и получить название компании для каждой из компаний.

company_names = []
@user.companies.each {|entry| company_names << entry.name}

Это когда у вас нет атрибута названия компании в таблице user_companies.
Если у вас это так, вы можете просто получить все имена по

UserCompany.where(:select=>"name", :user_id=> @user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...