我有一个Photo类,它具有“name”属性和“tags”属性。我的目标是在Rails中实现一个更新功能,用输入的内容替换照片的标签。例如,如果我尝试将“标签”设置为[]的JSON对象PUT,我希望从照片中清除任何标签。
但是,当我通过HTTParty提交一个空数组作为body参数之一时,我相信HTTParty正在将[]转换为nil。因此,我的Rails后端上的照片#update endpoint没有收到参数“tags”的任何内容。我正在寻找一种方法让HTTParty不将[]转换为nil,因为我失去了从照片中删除标签的能力。
答案 0 :(得分:1)
这是Rails 4中的一个错误/功能,您可以在以下位置阅读有关该剧的更多信息:https://github.com/rails/rails/issues/13420
您的选择包括:
deep_munge
,并处理其后果:>
# config/application.rb
config.action_dispatch.perform_deep_munge = false
答案 1 :(得分:-1)
只需将空数组分配给params,例如:
params[:photo][:tags] ||= []
如果没有设置params [:photo] [:tags],它将分配空数组。如果它不起作用,则意味着你必须调整键,例如,你可能没有:tags,但是:tag_ids,那么你将不得不写params [:photo] [:tags]。只需检查您的HTML结构(您可以随时将其粘贴到此处,我可以帮助您)。据我所知,这是标准方法:)