使用带有 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)
谢谢!