Почему зашифрованная строка 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, который не будет работать. Переключите его на тип текстового столбца.

Другие вопросы по тегам