我有一个嵌套数组,想要删除与我的模型上的信息匹配的条目。
我的数组看起来大致如下:
[{"id"=>"72157627540544488", "primary"=>"6090588224", "photos"=>"49", "videos"=>0, "title"=>"Title1", "description"=>""},
{"id"=>"72157627309708150", "primary"=>"5987891163", "photos"=>"49", "videos"=>0, "title"=>"Title2", "description"=>""},
{"id"=>"72157626646787712", "primary"=>"5687687064", "photos"=>"11", "videos"=>0, "title"=>"Title3", "description"=>""},
{"id"=>"72157626646672290", "primary"=>"5687629990", "photos"=>"33", "videos"=>0, "title"=>"Title4", "description"=>""}]
我的模特:
id :integer not null, primary key
name :string(255)
set_id :integer
thumb_url :string(255)
created_at :datetime
updated_at :datetime
我想要完成的是从数组中删除模型id
中任何set_id
重复{{1}}值的所有元素。
答案 0 :(得分:1)
您可以执行以下操作:
array.reject{|element| Model.exists?(:set_id => element['id'])}
其中array是数组,Model是模型类。这将返回一个新数组,其中删除了重复ID的元素。
Array.reject返回数组的副本,而传入的块的元素不返回true。
如果数据库中存在具有给定条件的模型,ActiveRecord.exists?将返回true。