как сохранить значение хеша в столбце таблицы в рельсах - PullRequest
12 голосов
/ 08 декабря 2010

Я очень плохо знаком с рельсами.У меня есть таблица, содержащая основную информацию для всех пользователей, например

пользователей (идентификатор, имя, адрес электронной почты) , сейчас я пытаюсь сохранить дополнительную информацию об этих пользователях в отдельной таблице, например

user_details (id, user_id, extra_info)

Я создал эту таблицу user_details.Теперь я пытаюсь сохранить некоторые записи по умолчанию для проверки.как сохранить значение хеша дополнительных данных пользователя в Additional_info, например, если мои дополнительные данные user (обозначение, оклад, имя_пользователя) в столбце Additional_info таблицы User_details.

Такжекакой тип данных я должен дать для этого столбца extra_info таблицы User_details .Пожалуйста, дайте несколько предложений ..

Ответы [ 2 ]

27 голосов
/ 08 декабря 2010

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

add_column :user_details, :additional_info, :text

Затем в вашей модели вы должны указать, что этот столбец будет содержать хеш, и вы делаете это с помощью команды serialize:

class UserDetail < ActiveRecord::Base
  serialize :additional_info

После этого вы можете сохранить хэш-информацию.

@ud = UserDetail.new
@ud.additional_info = {:salary => 1000000}
@ud.save
0 голосов
/ 28 июня 2018

Начиная с MySQL 5.7.8, поддерживается собственный тип данных JSON, поэтому сохранение хеша гораздо более прямое и может быть доступно для поиска и более:
https://dev.mysql.com/doc/refman/5.7/en/json.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...