Leo
Leo

Reputation: 2103

dependent: :destroy doesn't work (has_many association)

My problem is as simple as is the title of this thread i have two classes

class Category < ActiveRecord::Base

  has_many :subcategories, dependent: :destroy

  accepts_nested_attributes_for :subcategories

end

class Subcategory < ActiveRecord::Base
  belongs_to :category
end

but when i hit link_to "Delete", category_path(category), method: :delete requested category gets destroyed, but all subcategories stay like nothing happened.

EDIT

Server Log:

Started DELETE "/categories/8" for 127.0.0.1 at 2013-10-29 01:38:01 +0100
Processing by CategoriesController#destroy as HTML
  Parameters: {"authenticity_token"=>"rOTo3ROv/QsQRMPyCljbMvrViKgihC1CowBdlHdq7O4=", "id"=>"8"}
  Category Load (0.3ms)  SELECT `categories`.* FROM `categories` WHERE `categories`.`id` = 8 LIMIT 1
  SQL (0.5ms)  DELETE FROM `categories` WHERE `categories`.`id` = 8
Redirected to http://localhost:3000/categories
Completed 302 Found in 3ms (ActiveRecord: 0.8ms)


Started GET "/categories" for 127.0.0.1 at 2013-10-29 01:38:01 +0100
Processing by CategoriesController#index as HTML
  Category Load (0.3ms)  SELECT `categories`.* FROM `categories`
  Rendered categories/index.html.haml within layouts/application (0.9ms)
  Rendered application/_header.html.haml (0.1ms)
Completed 200 OK in 6ms (Views: 5.5ms | ActiveRecord: 0.3ms)

Upvotes: 3

Views: 2592

Answers (1)

fengd
fengd

Reputation: 7569

Are you calling delete on category? you should call destroy instead.

Upvotes: 13

Related Questions