Rails 3.2.11 で attr_encryptor-2.0.0 gem を使用して、postgresql 9.2.2 データベースのテキスト フィールドを暗号化します。
class Task < ActiveRecord::Base
attr_encrypted :description, :key => 'A secret key'
暗号化する前に、次の where 句を使用して、特定の検索語を含む説明付きのレコードを検索しましたs
。
current_user.tasks.where("description like ? ", '%'+s+'%')
暗号化された説明列でそれを行うにはどうすればよいですか?
仕組みがわかりませんfind_by_encrypted_<column>
。以下のコードnil
は、説明全体を使用するか、(既存のレコードの) サブストリングを検索語として使用するかを返しますs
。
current_user.tasks.find_by_encrypted_description(Task.encrypt_description(s))
暗号化を追加した後、レコードを作成する方法を変更していません。するべきか?
t = current_user.tasks.build(:description => @description)
ありがとうございました!