标签: ruby-on-rails activerecord
说我有这个问题:
red_houses = user.houses.where(color: 'red')
如何弹出red_houses的最后一个元素?
red_houses
我知道我可以这样做red_houses[1..-2],但不是red_houses.pop,我有什么方法可以丢失吗?
red_houses[1..-2]
red_houses.pop
基本上我想删除最后一个元素并获得剩下的关系,而不包含最后一个元素。
答案 0 :(得分:0)
您有两种方法可以从关联中删除记录:delete和destroy。可以使用要删除的对象或其id来调用它们。 (您也可以使用对象列表或ID列表作为参数)。
由于:delete根据:dependent选项指定的策略工作(默认为nullify),:destroy始终从数据库中删除记录,忽略:dependent选项
:delete
:dependent
:destroy
但是,如果你不想坚持db那个动作。在删除之前,您需要一个工作变量(调用:to_a),然后您可以调用pop:
:to_a
pop
red_houses = user.houses.where(color: 'red').to_a red_houses.pop