是否有可能知道相关对象何时被销毁?

pup*_*eno 2 ruby-on-rails ruby-on-rails-3

当你在Rails 3中有一对多关联并接受带有删除的嵌套属性时,是否可以通过查看对象(关联对象)来知道它是否会被删除?

例如:

group.attributes = {:member_attributes => {"0" => {:id => 1, :name => "John"},
                                           "1" => {:id => 2, :name => "Dave"},
                                           "2" => {:id => 3, :name => "Gus", "_destroy" => true}}}
Run Code Online (Sandbox Code Playgroud)

是否有可能通过查看group.members知道id为3的那个将在保存时被删除?

pup*_*eno 5

有一种方法可以找到它,称为marked_for_destruction?

group.members.each do |member|
    puts "#{member.name} => #{member.marked_for_destruction?}"
end
Run Code Online (Sandbox Code Playgroud)

会产生

John false
Dave false
Gus true
Run Code Online (Sandbox Code Playgroud)