在我的嵌套属性编写器中,我的一些属性有id,而有些属性没有:
attributes => [{"id"=>23, "name"=>"John Doe"}, {"name"=>"Jane Doe"}]
我希望销毁一个对象,除非它的id包含在attributes数组中。我不知道如何正确查询属性,所以我现在这样做:
id_array = attributes.collect{|a| a[:id]}
object.destroy unless id_array.include(object.id)
我更愿意避免创建id_array,而是在一行中完成它以匹配此伪代码:
object.destroy UNLESS THERE'S AN ATTRIBUTE ELEMENT WITH SAME ID
无法提供适用于属性的查询。
答案 0 :(得分:1)
试试这个
attributes.reject!{ |elem| !elem["id"] }
编辑:
object.destroy unless attributes.collect{|elem| elem["id"]}.include?(object.id)