Конвертировать объект активной записи в хеш - PullRequest
0 голосов
/ 17 июня 2019

У меня есть модель Person с полями email, name, age, phone_number.Я хочу конвертировать Person.all в хеш.Хэш должен иметь следующую структуру:

{
"email1" => ["name", "age", "phone_number"],
"email2" => ["name2", "age2", "phone_number2"]
....
}

Я пробовал as_json, map или attributes и т. Д. Но он возвращает массив хэшей.Как я могу создать эту пользовательскую структуру?

1 Ответ

2 голосов
/ 17 июня 2019

Вы можете получить его из запроса ниже:

Hash[Person.all.collect { |user| [user.email, user.attributes.except(:email).values] }]

Если вы хотите опустить другие атрибуты, такие как created_at & updated_at, запустите

Hash[Person.all.collect { |user| [user.email, user.attributes.except(:email, :created_at, :updated_at).values] }]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...