Почему зашифрованная строка AES сохраняется как пустая таблица MySQL с Ruby?
У меня есть модель под названием Encryption, которая генерирует зашифрованную строку AES и сохраняет ее в таблицу базы данных, которая называется шифрованием. Моя схема таблицы шифрования выглядит следующим образом:
id : bigint unsigned
user_id : bigint unsigned
encryption : VARCHAR(128) (utf8_unicode_ci)
created_at : datetime
updated_at : datetime
Однако, когда я вызываю.save в моем экземпляре модели шифрования, значение для encryption.encryption (в базе данных) остается пустым ('').
Вот содержимое модели:
ruby-1.9.2-head :005 > encryption
=> #<Encryption id: nil, user_id: 1, encryption: "\xD6\xD6\x95\x15\x0F\x92\xC6\x01\x86\x1E\x88\xD1\xB0\x1D\xE0\xEC", created_at: nil, updated_at: nil>
Как видите, это имеет значение в модели. Любые идеи о том, почему поле сохраняется как пустое в базе данных?
2 ответа
Я использую гем денежный ящик, чтобы сделать что-то подобное, и он запросил тип столбца :binary
, а не текст, может быть, вы могли бы попробовать это...
Вы, кажется, сохраняете строку в столбец bigint, который не будет работать. Переключите его на тип текстового столбца.