Ruby 对生产环境中未经许可的参数的操作

Ruby 对生产环境中未经许可的参数的操作,ruby,ruby-on-rails-5,Ruby,Ruby On Rails 5,为什么在生产环境中对参数未经许可的操作默认为false?有三个选项: false-不执行任何操作,筛选器未经允许 :log-在上写入消息 记录器 :raise-引发异常。 所以,将默认值设置为:raise是一个非常糟糕的主意,它会导致崩溃。 因此,我们必须在false和:log之间进行选择—让我们从第240行开始看—日志将使用调试级别编写,因此它在使用默认日志级别的生产中不可见。在大多数情况下,在生产日志中存储未经许可的参数是没有意义的。在生产和响应中捕获ActionController::Un

为什么在生产环境中对参数未经许可的操作默认为false?

有三个选项:

false-不执行任何操作,筛选器未经允许 :log-在上写入消息 记录器 :raise-引发异常。 所以,将默认值设置为:raise是一个非常糟糕的主意,它会导致崩溃。
因此,我们必须在false和:log之间进行选择—让我们从第240行开始看—日志将使用调试级别编写,因此它在使用默认日志级别的生产中不可见。在大多数情况下,在生产日志中存储未经许可的参数是没有意义的。

在生产和响应中捕获ActionController::UnpermittedParameters异常(默认行为为400?)不是最好的方法吗?完全不正常。想象一下,3d party API在新版本中为我们正在监听的一些回调添加额外的参数,而不做任何破坏性的更改——Rails应用程序只会对所有请求回复400。就个人而言,我不希望它出现在我的应用程序中。因为他们给了我们:raise选项,所以可以在需要时进行错误处理。