Почему зашифрованная строка AES сохраняется как пустая таблица MySQL с Ruby? - PullRequest
0 голосов
/ 09 июня 2011

У меня есть модель под названием 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 ]

3 голосов
/ 09 июня 2011

Я использую гем денежный ящик для чего-то похожего, и он запрашивает тип столбца :binary, а не текст, возможно, вы могли бы попробовать это ...

1 голос
/ 09 июня 2011

Вы, похоже, сохраняете строку в столбец bigint, который не будет работать. Переключите его на тип текстового столбца.

...