Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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_Ruby On Rails 4_Strong Parameters - Fatal编程技术网

Ruby on rails Rails 4用于多标签输入的未经允许的参数

Ruby on rails Rails 4用于多标签输入的未经允许的参数,ruby-on-rails,ruby-on-rails-4,strong-parameters,Ruby On Rails,Ruby On Rails 4,Strong Parameters,我有一个工作代码,用于在一个输入字段中接受多个标记。我过去允许我的参数为: params.require(:计算机服务).permit({:修理工ID=>[]}) 这是正确的。我最近将Rails设置为针对未经允许的错误引发错误,这样我就可以知道是否有任何表单数据未保存: #development.rb config.action_controller.action_on_unpermitted_parameters = :raise 由于添加该设置Rails现在会引发一个错误查找不允许的参数:

我有一个工作代码,用于在一个输入字段中接受多个标记。我过去允许我的参数为:

params.require(:计算机服务).permit({:修理工ID=>[]})

这是正确的。我最近将Rails设置为针对未经允许的错误引发错误,这样我就可以知道是否有任何表单数据未保存:

#development.rb
config.action_controller.action_on_unpermitted_parameters = :raise
由于添加该设置Rails现在会引发一个错误
查找不允许的参数:repair\u id
,即使代码有效且参数repair\u id已找到并保存

示例参数:

“计算机服务”=>{“维修工ID”=>“16631726”}

更新

如果我更改为
params.require(:computer\u service).permit(:repair\u id)
,则会保存第一个id,但不会保存第二个id。我应该指出,在我的控制器中,我使用代码将逗号分隔的字符串转换为数组:

@computer_service.repairer_ids = repairer_ids.split(',')
我这样做是因为计算机服务和维修厂之间的关系是一种长期的关系

#computer_service.rb
has_many :repairers, :through => :computer_service_repairers

我已经通过使用数组中的多个值成功地将多个值保存到了计算机维修工通过/join表。

您的
维修工ID
没有以数组形式收到。请尝试
params.require(:computer\u service)。permit(:repair\u ids)
同意@Humza-看起来输入是以逗号分隔的字符串而不是数组的形式提交的。@Humza,谢谢您的帮助。我忘了在我最初的问题中提出,我正在手动转换到控制器中的数组,以便可以使用与联接表的has_many through关系。我道歉。我已经更新了问题。