Method: EmbedsMany::Child#destroy

Defined in:
lib/embeds_many/child.rb

#destroyObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/embeds_many/child.rb', line 62

def destroy
  # tell rails the field will change
  parent.send "#{field_name}_will_change!"

  parent.read_attribute(field_name).delete_if {|t| t['id'] == self.id}

  @operation_pending = true

  if parent.update(field_name => parent.read_attribute(field_name))
    parent.send(field_name).child_destroyed(self)

    true
  else
    parent.send "#{field_name}=", parent.send("#{field_name}_was")
    false
  end
ensure
  @operation_pending = false
end