此方法采用散列并返回不包含敏感信息的新散列。它不会修改传入的哈希值。
有没有更类似于 Ruby 的惯用方式呢?
def sanitize hash
new_hash = hash.dup
protected_keys = [ :password, 'password', :confirmation, 'confirmation' ]
new_hash.each do |k,v|
if protected_keys.include?( k ) && ! v.blank?
new_hash[ k ] = 'xxxxxxxxx'
end
end
new_hash
end
使用 Ruby 1.9.3、Sinatra(不是 Rails)而不使用 Active Record。