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关系。我道歉。我已经更新了问题。