В моей Guest
модели у меня есть этот метод для возврата списка идентификаторов из связанной модели:
def self.people_list(consultant_id)
# returns an array of ids of people who attended parties for a given consultant
people = self.select(:person_id).joins('INNER JOIN parties ON guests.party_id = parties.id').where('parties.consultant_id = ?', consultant_id).collect{ |g| g.person_id }
end
person_id
- это поле в модели Guest. Но то, что я получаю, это массив нулей. С консоли rails я могу сказать, что запрос правильный, и он возвращает правильное количество объектов. Я просто не получаю их в массив.
Спасибо за помощь.
P.S., Если это помогает / имеет значение, у Консультантов много сторон, у которых много гостей. У гостей есть person_id, который присоединяется к таблице People. Я пытаюсь найти все person_ids из таблицы «Гости», которые были на вечеринке для данного консультанта.
Из консоли (после изменения синтаксиса рельсовых ассоциаций, как указано ниже)
Guest Load (0.3ms) SELECT person_id FROM `guests` INNER JOIN `parties` ON `parties`.`id` = `guests`.`party_id` WHERE (parties.consultant_id = 1)
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]