Вы должны быть в состоянии использовать array_agg для этой цели,
SELECT field_name, array_agg(id)
FROM table
GROUP BY field_name
ответ pjb использует Единственное Наследование Таблицы. Чтобы это работало, необходимо добавить столбец, названный типом к Пользователям и к Профилям* таблицы, так, чтобы направляющие могли сохранить, какой Пользователь это (так как Агент, Танцор и т.д. является просто подклассами Пользователя).
Это означает, что они будут все сохранены в таблицах пользователей/профилей, но когда Вы инстанцируете их, ActiveRecord инстанцирует их как корректного типа. С этим Вы сможете звонить
User.find
но также и сделайте вещи как
Actor.find, Actor.all, etc
и определите объем его только к Агентам
Google rails single table inheritance
для получения дополнительной информации и примеров.
класс Профиль <ActiveRecord:: Основа belongs_to: сторона пользователя
класс ActorProfile <Конец профиля
класс DancerProfile <Конец профиля
и т.д.
Определите отношения в подклассах:
class User < ActiveRecord::Base
end
class Actor < User
has_many :profiles, :class_name => "ActorProfile"
end
class Dancer < User
has_many :profiles, :class_name => "DancerProfile"
end
Вам необходимо убедиться, что в вашей таблице пользователей есть столбец с названием «тип». Rails сохранит ТИП класса (Пользователь, Актер и т. Д.) В этом поле базы данных.