嗨,我有一些问题。
我使用三个嵌套对象(例如Item)初始化Object(例如List)而不保存。
@list = List.new
@list.items.build(position: 1)
@list.items.build(position: 2)
@list.items.build(position: 3)
我想删除/销毁位置= 3的位置。那怎么办?
我尝试过删除这样的项目:
@list.items.select {|item| item.position == 3 }.delete
但是@ list.items.size仍然是3.任何想法如何解决?
答案 0 :(得分:2)
我将假设这些对象是ActiveRecord模型。
你坚持模特吗? delete
是您运行持久模型的东西。对于没有经验的东西,它没有多大意义。此外,要从集合中删除某些内容,通常会对集合本身运行delete方法:
@list.items.delete(@list.items.select {|i| i.position == 3 })
答案 1 :(得分:0)
你能使用delete_at
吗?并传入要删除的项目的索引。请注意,此方法返回已删除的项目。
@list.items.delete_at(2)