ruby-on-rails – 在Rails 4下的表单显示上重写SSN?
发布时间:2020-12-17 02:21:32 所属栏目:百科 来源:网络整理
导读:我有一个Rails 4应用程序,我使用 attr_encrypted gem在数据库中以加密形式存储SSN. 我想要做的只是在编辑/显示表单时显示最后4位数字.因此,一旦SSN被保存,用户就无法在表单中看到完整的SSN.所以我试过做以下事情, class PaymentData ActiveRecord::Base attr
我有一个Rails 4应用程序,我使用
attr_encrypted gem在数据库中以加密形式存储SSN.
我想要做的只是在编辑/显示表单时显示最后4位数字.因此,一旦SSN被保存,用户就无法在表单中看到完整的SSN.所以我试过做以下事情, class PaymentData < ActiveRecord::Base attr_encrypted :ssn,key: 'secret' alias_method :org_ssn,:ssn def ssn org_ssn.reverse # just a way of testing if this works end end 我在节目表单上看到的是使用<%= @ payment_data.ssn%>,它运行正常.但是在我使用<%= f.input:ssn%>的编辑表单上,编辑字段预先填充了完整的SSN. 注意:我正在使用 我在这做错了什么? 解决方法
这就是我最终做的,
def obfuscated_ssn return ssn unless ssn && ssn.size > 3 ssn.last(4).rjust(ssn.length,'*') end def obfuscated_ssn=(ssn) self.ssn = ssn unless ssn.include?('*') end 这有点hacky,但它显示带有编辑字符串的SSN,但是不会保存带有编辑位*的字符串,以防止错误数据获取数据库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |