如何在嵌套属性writer中查询params

时间:2016-11-04 13:51:30

标签: ruby-on-rails activerecord

在我的嵌套属性编写器中,我的一些属性有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

无法提供适用于属性的查询。

1 个答案:

答案 0 :(得分:1)

试试这个

attributes.reject!{ |elem| !elem["id"] }

编辑:

object.destroy unless attributes.collect{|elem| elem["id"]}.include?(object.id)