Rails 5.0.0.beta4引入了一个警告,在包含动态 :action 和 :controller 片段的路由中:
DEPRECATION WARNING: Using a dynamic :action segment in a route is deprecated and will be removed in Rails 5.1.
这个PR的提交信息 表示:
在 config/routes.rb 中允许通过路径指定 :controller 和 :action 值一直以来都是 Rails 中一些问题的潜在根源,导致了一系列的安全版本发布。鉴于此,显式地将控制器和操作添加到白名单中比试图对“坏”值进行黑名单或清理更好。
如何“添加到白名单”一组操作参数?我在我的路由文件中有以下内容,它们正在引发弃用警告:
namespace :integrations do
get 'stripe(/:action)', controller: 'stripe', as: "stripe"
post 'stripe/deactivate', controller: 'stripe', action: 'deactivate'
end