我有一个users
表,其中包含encrypted_mobile_number
字段。如何在不循环所有手机号码的情况下检查解密的mobile_number的唯一性?我正在使用MessageEncrptor进行数据的加密和解密。 api.rubyonrails.org/classes/ActiveSupport/MessageEncryptor.html
答案 0 :(得分:3)
选项1 :覆盖阅读器
validates encrypted_mobile_number, uniqueness: true
def encrypted_mobile_number
# ...
crypt.decrypt_and_verify(@encrypted_mobile_number)
end
选项2 :创建唯一索引
add_index :users, :encrypted_mobile_number, unique: true