Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4参数允许使用数组作为值的对象数组_Ruby On Rails_Parameters - Fatal编程技术网

Ruby on rails Rails 4参数允许使用数组作为值的对象数组

Ruby on rails Rails 4参数允许使用数组作为值的对象数组,ruby-on-rails,parameters,Ruby On Rails,Parameters,我有一个复选框标记,它返回一个我似乎不允许的权限对象。 我已经检查了StackOverflow,并尝试了一些方法,但由于我对编码和参数还不熟悉,所以无法使其正常工作 参数如下所示: “产品开发者权限”=>[{“1”=>[“1”],“2”=>[“1”],“6”=>[“42”,“59”]}] 嵌套哈希的键是产品生成器的id,数组中的值是这些生成器可以访问的对象id 如果我稍微修改一下我的HTML,并为每个构建器获得一个键,我就能够用params.permit之类的东西来白名单( 产品制造商许可证1:

我有一个复选框标记,它返回一个我似乎不允许的权限对象。 我已经检查了StackOverflow,并尝试了一些方法,但由于我对编码和参数还不熟悉,所以无法使其正常工作

参数如下所示:
“产品开发者权限”=>[{“1”=>[“1”],“2”=>[“1”],“6”=>[“42”,“59”]}]

嵌套哈希的键是产品生成器的id,数组中的值是这些生成器可以访问的对象id

如果我稍微修改一下我的HTML,并为每个构建器获得一个键,我就能够用
params.permit之类的东西来白名单(
产品制造商许可证1:[])
许可证(
产品制造商许可证1:[])
等 这是低效的

我正在尝试使用类似于
params.permit(product\u builder\u permissions:[0])的东西。
我只在第一级将键和值列为白名单,而不是在获取后嵌套的内容
{“产品构建者权限”=>[{}}

我也试过类似的东西
params.permit(产品制造商权限:[0][:制造商id.to\u.s.to\u i,:制造商id.to\u.to\u.to\u i])
无效


提前谢谢。

考虑到你没有做大规模作业,我建议你跳过强参数的痛苦,直接操作参数。

我来看看你的问题。当我这么做的时候,出于好奇,您是否在使用
产品\u生成器\u权限
进行批量分配?或者,您是否以某种方式进一步处理这些值?如果是后者,则使用强参数可能不是解决方案,因为它们旨在保护属性不受最终用户分配的影响。非常感谢,@jvillian的迅速回复。该视图显示一个表,其中包含:-建筑商(如衬衫、裤子等)-制造商(如供应商),每个制造商都有一个复选框标记。提交表单时,我会获得映射所有选中项的params product_builder_权限。例如,产品\u生成器\u权限“=>[{“1”=>[“1”]}]意味着builder 1可以访问maker 1。然后,我对其进行迭代,并在控制器中为当前品牌创建或销毁作为品牌、制造商和builder之间连接的权限。感谢链接,我现在将检查它。鉴于您没有进行批量分配,我建议您跳过强参数的心痛,只需直接操作参数。出于好奇,你最终做了什么?嘿@jvillian!既然我们要迁移到5.2,我的首席开发人员在5+中告诉我,你必须处理强参数。我们尝试了一些事情,但由于没有成功,他现在已经掌握了任务。一旦我得到答案,我就会发布它!这是一个有趣的问题t、 我有一堆5+rails应用程序,我使用/操纵参数(在大规模分配之外),而不使用强参数。因此,我的直接经验与您的首席开发人员的声明不一致。但是,您知道,我该说谁?哦,这真的很奇怪。如果他给我回电话,我会随时通知您。