У меня есть приложение rails 2, которое я пытаюсь изменить, чтобы до того, как атрибут был записан в мою базу данных MySql, он закодирован и прочитан, он декодируется (не все атрибуты, только предопределенные).Rails 2 hook для изменения данных перед его чтением/записью в MySQL DB
Я рассмотрел некоторые драгоценные камни, в частности, зашифрованные, но он не делает именно то, что я хочу (я также стараюсь избегать повторного обозначения любых существующих столбцов таблицы, что, по-видимому, является требованием для атр-зашифрованы).
Я добавил к моей модели фильтр before_save, чтобы выполнить модификацию атрибута, прежде чем он будет сохранен в БД, и я переопределил свой атрибут getter для декодирования. Хотя это работает, я хочу сделать декодирование ниже в стеке (т. Е. Сразу после чтения БД), чтобы все функционировало правильно, не требуя изменений в системе (это также упрощает логику при принятии решения о том, когда кодировать/декодировать).
Так что это означает, что я хочу сделать следующее:
1) В БД читать, сделать наоборот, так что, если я делаю Model.last значение для моего атрибута будет декодированного value (без явного вызова атрибута getter).
2) Переопределите методы find_by_ *, чтобы выполнить поиск по моему закодированному атрибуту сначала будет закодировать поисковый запрос, а затем выполнить запрос db с использованием этого значения.
Как бы я это сделал?
как в сторону ...добавление шифрования для обеспечения безопасности в рельсах 2 приложения звучит как театр безопасности. Вам действительно нужно обновить приложение, так как рельсы 2 не поддерживаются. – DGM