我有一个 Rails 4 应用程序,我正在使用attr_encryptedgem 将 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。
注意:我在simple_form表单中使用 gem,但如果我使用基本<%= f.text_field :ssn %>语法,我会看到相同的完整 SSN。
我在这里做错了什么?