Student
モデルには2つのフィールドsecret_question
とsecret_answer
があります。これら2つのフィールドは暗号化された形式で保存されます。私はencrypt
after_save
を実行し、これらのフィールドを暗号化する方法を持っています。私はdecrypt
メソッドを持っていますdecrypt
これらの2つのフィールドと負荷データをメモリにロードします。例の下にあなたがレコードがデフォルトでアクセスされるたびに特定のメソッドを呼び出す方法
def decrypt
# notice that i dont save the decrypted data, it is just loaded into the memory
self.secret_question = decrypt_data(secret_question)
self.secret_answer = decrypt_data(secret_answer)
self
end
を理解するのに役立ちます。このアプローチの問題は、私はdecrypt
方法私はこれらの必要なフィールドを計算/ /使用することを示さなければならないたびに呼び出す必要があります。
Student
モデルを呼び出すたびに、これら2つのフィールド(secret_question
およびsecret_answer
)が復号化されるように、私は何らかの方法を探しています。
これまでのところ、私はstudent
def self.find(*args)
s = super(*args)
s.decrypt
s
end
で、この中で行っているが、これらはデフォルトで呼び出されるdecrypt
メソッドを持って文句を言わないassociations
すなわちschool_class.students
では動作しない場合があります。 student
モデルにアクセスするたびにdecrypt
メソッドを呼び出す方法はありますか?
PS:上記のような例があり、データを暗号化することは我々のビジネス要件です。
申し訳ありませんが、以前に間違ったリンクを入れていたが、今 –
恐ろしい更新しました。どうやってそんなにばかげたことを逃すことができますか? –