这些年来,我读过一些教程,它们告诉我,为了不将密码存储到日志文件中,您必须在application.rb中将config.filter_parameters更新为类似于config.filter_parameters += [:password, :password_confirmation]的内容。我还看过一堆教程,它们只是在config.filter_parameters += [:password]上列出的。我一直使用Devise,我注意到只要我有config.filter_parameters += [:password] (这是rails 3.2.13中的默认设置),我的密码和密码确认都会被过滤掉。
为什么过滤password_confirmation?这是rails的事情吗?设计?
显然,这就是我想要的行为。只是好奇为什么会这样。
发布于 2013-05-04 10:19:35
这是rails的事情:
http://api.rubyonrails.org/classes/ActionDispatch/Http/FilterParameters.html#method-i-parameter_filter
本质上,密钥只是通过一个正则表达式传递,如/password/,如果匹配,则将该值转换为“已过滤”]
因此,默认情况下,匹配password_confirmation甚至do_not_filter_this_password的字段都会被过滤掉。
https://stackoverflow.com/questions/16365806
复制相似问题