rails 4在渲染之前隐藏模型属性

时间:2014-11-17 15:35:08

标签: ruby-on-rails rails-activerecord

我有一个使用Rails 4 activerecord的用户模型,它有一个accessstoken属性,存储个人访问令牌以验证该用户作为另一种身份验证机制。

当json的rails rendern呈现模型的所有字段时,也会呈现访问令牌字段。泄露凭证信息很危险。

如何在渲染之前过滤accessstoken字段,并将其标记为' FILTERED'无论何时它显示在服务器日志中,就像密码'领域呢?

1 个答案:

答案 0 :(得分:1)

对于JSON,您可以覆盖模型上的as_json

def as_json(options={})
  options.reverse_merge! except: :accesstoken
  super(options)
end

对于日志记录,您可以在config/application.rb中将属性添加到过滤器列表

config.filter_parameters << :accesstoken