Ruby on rails ';通过'查找#u;和';其中';不使用attr_加密

Ruby on rails ';通过'查找#u;和';其中';不使用attr_加密,ruby-on-rails,Ruby On Rails,用户模型中的电子邮件字段使用attr_encrypted加密。当我用Desive和FacebookOmniAuth创建新用户时,它实际上被保存在DB中。此外,我还可以使用User.last.email#=>foo@foo.com 但是当我使用User.find\u by\u email(“foo@foo.com“”或用户。其中(电子邮件:foo@foo.com) user.rb class User < ActiveRecord::Base attr_encrypted :email,

用户模型中的电子邮件字段使用attr_encrypted加密。当我用Desive和FacebookOmniAuth创建新用户时,它实际上被保存在DB中。此外,我还可以使用
User.last.email#=>foo@foo.com

但是当我使用
User.find\u by\u email(“foo@foo.com“”
用户。其中(电子邮件:foo@foo.com)

user.rb

class User < ActiveRecord::Base
  attr_encrypted :email, key: Settings.encryption.key
end
class用户
如果您使用的是
attr\u encrypted
gem,我认为
email
是虚拟字段,实际上作为
encrypted\u email
字段保存在
users
表中

对于
users
表,您的
schema.rb
文件是什么样子的

如果是这样的话,我想你只需要使用

User.find_by_encrypted_email("foo@foo.com")
而不是

User.find_by_email("foo@foo.com")
创业板文件:

祝你好运