健壮参数的目的是为了解决常见问题,不是万用良药。不过,可以很方便的和自己的代码结合,解决复杂需求。
假设有个参数包含产品的名字和一个由任意数据组成的产品附加信息 Hash,希望过滤产品名和整个附加数据 Hash。健壮参数不能过滤由任意键值组成的嵌套 Hash,不过可以使用嵌套 Hash 的键定义过滤规则:
def
product_params params.require( :product ).permit( :name ,
data: params[ :product ][ :data ].try( :keys )) end |