Rails 3.1使用attr_encrypted gem(加密字段的where子句)加密数据库

pho*_*ard 6 mysql ruby-on-rails ruby-on-rails-3

我使用attr_encrypted gem在表中加密了一个字段.现在我想查询该特定字段,将其与我从表单中检索的值进行比较.我怎样才能做到这一点?

编辑 :我需要查询许多加密字段.例如:搜索encrypted_email,encrypted_name等(在where子句中使用OR条件)

Ser*_*sev 3

attr_encrypted拦截find_by方法,所以你应该能够这样做:

class User < ActiveRecord::Base
  attr_encrypted :email, :key => 'a secret key'
  attr_encrypted :password, :key => 'some other secret key'
end

User.find_by_email_and_password('test@example.com', 'testing')
Run Code Online (Sandbox Code Playgroud)

这被重写为

User.find_by_encrypted_email_and_encrypted_password('ENCRYPTED EMAIL', 'ENCRYPTED PASSWORD')
Run Code Online (Sandbox Code Playgroud)