我使用attr_encrypted
gem添加加密。基本上我所要做的就是添加gem,并在添加行之前将我的列重命名为encrypted_column
前缀:
attr_encrypted :reply, key: ENV["ANSWER_CRYPT_KEY"]
到我的模特。现在这一切都运行良好,但是我已准备好将其推向生产,并且会有一些问题,因为那里的值没有加密 - 是否有一个命令我可以在我的rails c中运行以循环它们并加密它们?
答案 0 :(得分:0)
我建议您通过将reply
列重命名为old_reply
来完成中间步骤。您可以运行迁移来执行此操作:
def up
rename_column :your_table, :reply, :old_reply
Model.reset_column_information
Model.find_each do |instance|
model.reply = model.old_reply #this will set the encrypted_reply based on attr_encrypted
model.save!
end
end
确定已设置所有加密值后,您可以运行其他迁移以删除old_reply
答案 1 :(得分:0)
您也不需要重命名数据库中的列;相反,您可以使用:attribute
gem的attr_encrypted
选项。
作为参考,您可以查看其文档here。