例如,我想进行这种转换:
# user input value to log"e6132 DG71" => "a9999 AA99"
这有助于我们解决用户问题.
我可以为Rails的filter_parameters方法使用自定义过滤器(可能是proc?)吗?
解决方法 附加一个lambda过滤器您可以将lambda过滤器附加到Rails.application.config.filter_parameters.只有未通过典型过滤捕获的参数才会继续进行自定义过滤.
# Typical filters - will show as [FILTERED]Rails.application.config.filter_parameters += [ :password]# Custom filter - this only sees what the prevIoUs List dIDn't catchRails.application.config.filter_parameters << lambda do |param_name,value| if %w[foo_param bar_param].include?(param_name) && value.respond_to?(:gsub!) # Alter the string in place because we don't have access to # the hash to update the key's value value.gsub!(/[a-z]/,"a") value.gsub!(/[A-Z]/,"A") value.gsub!(/[0-9]/,"9") # Stick this at the beginning to make it easy to see in logs value.gsub!(/\A/,"[FORMAT FILTERED]") endend
请注意,默认筛选器匹配为正则表达式; :密码被视为/ password /.你也可以为自定义过滤器做同样的事情:
if [/foo/,/bar/].detect {|r| r.match(param_name) } # ...end总结
以上是内存溢出为你收集整理的ruby-on-rails – 我可以自定义Rails过滤参数的方式吗?全部内容,希望文章能够帮你解决ruby-on-rails – 我可以自定义Rails过滤参数的方式吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)