【发布时间】:2023-03-12 22:32:01
【问题描述】:
我将以下参数传递给我的ProfilesController#Update:
> profile_params[:videos_attributes]
=> <ActionController::Parameters {"1479585381276"=><ActionController::Parameters {"vimeo_url"=>"https://www.youtube.com/watch?v=Qj2gkjh3-k", "official"=>"false", "_destroy"=>"false"} permitted: true>, "1479585385202"=><ActionController::Parameters {"vimeo_url"=>"https://vimeo.com/some-awesome-video", "official"=>"true", "_destroy"=>"false"} permitted: true>} permitted: true>
我想要做的是删除带有键 1479585381276 的散列(或任何散列)
我尝试使用.delete(key),但这似乎不起作用。
> item
=> "1479585381276"
> profile_params[:videos_attributes].delete(item)
=> <ActionController::Parameters {"vimeo_url"=>"https://www.youtube.com/watch?v=Qas34Pce-k", "official"=>"false", "_destroy"=>"false"} permitted: true>
> profile_params[:videos_attributes]
=> <ActionController::Parameters {"1479585381276"=><ActionController::Parameters {"vimeo_url"=>"https://www.youtube.com/watch?v=Qas34Pce-k", "official"=>"false", "_destroy"=>"false"} permitted: true>, "1479585385202"=><ActionController::Parameters {"vimeo_url"=>"https://vimeo.com/some-awesome-video", "official"=>"true", "_destroy"=>"false"} permitted: true>} permitted: true>
我想这样做的原因是因为当我评估参数时,它仍然会传递给我Profiles#Update 后半部分的@profile.update(profile_params) 并创建一条我不希望它创建的记录。
所以我要做的就是在成功处理后,将其从profile_params[:videos_attributes] 哈希中删除/弹出/删除。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-5 strong-parameters