我有一個加密類型在我的模型如何獲取模型的原始預反序列化值?
attribute :name, :encrypted
這是
class EncryptedType < ActiveRecord::Type::Text
,並實現#serialize
,#deserialize
和#changed_in_place?
。
如何在反序列化之前從數據庫中獲取原始值?
我想創建一個rake任務來加密數據庫中的字段被加密之前存在的值。所以在加密之前,name
字段包含Bob
。在加密代碼後,讀取該值將產生一個錯誤(捕獲),返回一個空字符串。我想讀取原始值並將其設置爲普通屬性,以便對其進行加密。加密後,該字段看起來像UD8yDrrXYEJXWrZGUGCCQpIAUCjoXCyKOsplsccnkNc=
。
我想要類似user.name_raw
或user.raw_attributes[:name]
。
如何定義一個名爲'unencrypted'的方法來處理'encrypted'屬性?所以你可以參考這個方法而不是原來的屬性。這看起來更加緊密,一旦'encrypt'名字意味着數據將被加密。 –