根据属性名称从数组中删除ActiveRecord :: AssociationRelation实例

时间:2018-06-18 17:28:38

标签: ruby-on-rails ruby activerecord

我的rails应用将@locations数据提取到ActiveRecord::AssociationRelation数组中。

@locations 
=> #<ActiveRecord::AssociationRelation [#<Location id: 10, organization_id: 2, name: "Quitzonville", ...

我想基于:name属性删除实例,但我还需要在之后应用.arrange_serializable方法。

到目前为止,我已经尝试过了:

@locations.select { |loc| loc[:name] != ... }

方法,但我似乎无法在......之后应用.arrange_serializable

有人可以提供一些建议吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

听起来你可以使用.where.not查询来完成你想要的任务。 .select会将ActiveRecord::AssociationRelation转换为Arraywhere.not会将其保留为AssociationRelation。所以你的代码可能如下:

@locations.where.not(name: bad_names).arrange_serializable

其中bad_names是您不想包含的单个名称,或者您不想包含的名称数组。