Ruby on rails 如何删除多个尚未保存父对象的对象
我有一个有很多客户的活动 创建一个新对象时,我分配了几个Clientship对象,但在保存之前,用户希望选择一些要删除的对象 如何根据用户定义的客户端id删除以下Clientship对象之一 集合如下所示:Ruby on rails 如何删除多个尚未保存父对象的对象,ruby-on-rails,Ruby On Rails,我有一个有很多客户的活动 创建一个新对象时,我分配了几个Clientship对象,但在保存之前,用户希望选择一些要删除的对象 如何根据用户定义的客户端id删除以下Clientship对象之一 集合如下所示: @activity.clientships [ #<Clientship id: nil, client_id: 1770>, #<Clientship id: nil, client_id: 24>, #<Clientship id: nil, c
@activity.clientships [
#<Clientship id: nil, client_id: 1770>,
#<Clientship id: nil, client_id: 24>,
#<Clientship id: nil, client_id: 25>,
#<Clientship id: nil, client_id: 2181,>
]
此客户端是否已保存到db?或者它只是存在于表单中?存在于表单中,因为它们是新记录
@activity.clientships.delete(24)
应该可以做到这一点。我还建议您在#销毁
和#删除
之间仔细选择。如果您想保留回调调用,只需使用#destroy
:@activity.clientships.destroy(24)
还要注意,这也适用于ActiveRecord对象:client=client.find(24)
@activity.clientships.destroy(client)
@activity.clientships.map {|o| o.delete if o.client_id==24 }
@activity.clienships.delete_if{|o| o.client_id == 24}