在rails 3.0项目的上下文中,必须加密数据库字段。 gem Strongbox用于管理加密。该实现遵循github上的自述文件(参见链接)。 问题是该视图会抛出错误:
invalid byte sequence in UTF-8
代表<%= f.text_field :my_field %>
在视图上解密字段有什么特别的事吗?
答案 0 :(得分:2)
Strongbox的文档说明:“在您的视图和表单中,您无需对数据进行加密。解密调用:user.secret.decrypt'password'”
Rails表单构建器在生成表单时不会对值调用decrypt,因此这就是您将收到此错误的原因。您有两种选择:
为所有加密字段手动设置text_field值,例如
'&lt;%= f.text_field:my_field,:value =&gt; user.my_field.decrypt“password”%&gt;'
构建自定义表单生成器,在生成表单时解密加密值。