如何顶级弹出ActiveRelation的最后一个元素?

时间:2015-04-25 15:51:53

标签: ruby-on-rails activerecord

说我有这个问题:

red_houses = user.houses.where(color: 'red')

如何弹出red_houses的最后一个元素?

我知道我可以这样做red_houses[1..-2],但不是red_houses.pop,我有什么方法可以丢失吗?

基本上我想删除最后一个元素并获得剩下的关系,而不包含最后一个元素。

1 个答案:

答案 0 :(得分:0)

您有两种方法可以从关联中删除记录:deletedestroy。可以使用要删除的对象或其id来调用它们。 (您也可以使用对象列表或ID列表作为参数)。

由于:delete根据:dependent选项指定的策略工作(默认为nullify),:destroy始终从数据库中删除记录,忽略:dependent选项

但是,如果你不想坚持db那个动作。在删除之前,您需要一个工作变量(调用:to_a),然后您可以调用pop

red_houses = user.houses.where(color: 'red').to_a
red_houses.pop