在rails中将深层嵌套的强参数列入白名单

我正在尝试在文本列中存储序列化的Ransack搜索。 它是深深嵌套的,我正在努力想出它的许可证。 这是一个示例哈希:

{ "c"=>{ "0"=>{ "a"=>{ "0"=>{ "name"=>"column_1" } }, "p"=>"eq", "v"=>{ "0"=>{ "value"=>"value_1" } } }, "1"=>{ "a"=>{ "0"=>{ "name"=>"column_2" } }, "p"=>"cont", "v"=>{ "0"=>{ "value"=>"value_2" } } } } } 

你会怎么写这个许可证? 这是我阅读文档的最佳猜测,但它不起作用。

 def course_listing_params params.require(:course_listing).permit({ q: { c: [{ a: [:name] }, :p, { v: [:value] }] } }) end 

我最终构建了另一个模型来存储条件,并使用accepts_nested_attributes_for在course_listing控制器中创建所有条件。

我不得不补充一下

 conditions_attributes: [:id, :attr, :pred, :val, :_destroy] 

到我的许可证电话,以使一切工作。 中间三个是我自己的属性,:id阻止Rails在每次编辑时添加新条件,并且:_destroy是可以删除条件的。