запрос активной записи возвращает хеш user_ids, найдите атрибуты пользователя для каждого - PullRequest
0 голосов
/ 17 июля 2011

У пользователя много отношений

В моей таблице отношений у меня есть поле: рефери, содержащее идентификатор пользователя для каждой записи.Каждая запись также имеет внешний ключ user_id

Я хочу найти записи с current_user.id в поле: referee и выбрать user_id из поля внешнего ключа для каждого.

refs = Relationship.where(:referee => current_user.id).select("user_id").all 

В результате получается такой массив:

[#<Relationship user_id: 16>, #<Relationship user_id: 17>]

Теперь я хочу найти атрибуты пользователя для каждого идентификатора в массиве, который я пробовал, но до сих пор не получилось, например:

User.where(:id => @refs_user_id).each do |user|
  user.name
end

Несколько раз читал / просматривал расширенные запросы, области и т. Д. Для активной записи, но, похоже, не совсем понял, что здесь требуется.Любые предложения будут высоко оценены, спасибо!

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Вы можете просто передать массив идентификаторов ActiveRecord

 User.find([1,2,3,4,5,6])

А если вы просто хотите получить идентификаторы:

     User.find(:all, :conditions => 'id IN (?)',[1,2,3,4,5,6], :select => 'id')

Это вернет только идентификаторы.

0 голосов
/ 17 июля 2011

Вы можете выбрать только user_id компоненты, подобные этой:

User.where(:id => @refs_user_id.map(&:user_id)).each do |user|
  user.name
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...