Nested resources deletion


#1

Hi,

I managed to get the complex forms and nested resources described in
http://railscasts.com/episodes/75-complex-forms-part-3 to work.

But I’m having problems when deleting a sub item.

def existing_task_attributes=(task_attributes)
tasks.reject(&:new_record?).each do |task|
attributes = task_attributes[task.id.to_s]
if attributes
task.attributes = attributes
else
tasks.delete(task)
end
end
end

the tasks.delete(task) gives me a mysql error: Mysql::Error: Cannot add
or update a child row: a foreign key constraint fails

My main item has several sub items and a sub item belongs to the main
item. In my mysql database, the constraint is set at the sub item table,
pointing to the main item id and on delete => cascade.

Anyone has an idea on what is going on? Why this is giving me an error?


#2

It looks like when the delete action is executed, rails first updates
the sub item id to null instead of deleting it :s


#3

looks like I solved the problem myself. Looks like when you say delete
it sets the id to null. I needed to use destroy.