2011-10-21 39 views
0

我運行rake任務來破壞我所有的「課程」對象(軌):有些對象拒絕被摧毀

task :destroy_all_classes => :environment do 
    Course.all.each do |c| 
    c.destroy 
    end 
end 

這破壞了大部分的課程,但12保持(滿分40 +)。什麼可能會阻止我刪除它們?

如果我嘗試手動刪除每門課程,通過控制檯,我得到這個:

ruby-1.9.2-p290 :030 > Course.find(1).destroy 
=> false 
+0

您可以: c = Course.find(1); c.destroy;把c.errors.inspect – Nycen

+0

啊,這樣做!它顯示我至少有一個屬於每個拒絕刪除的課程的「line_item」對象。 .inspect的輸出爲「{:base => [\」Line Items present \「]}」。刪除第一個工作的line_items。謝謝! – jyli7

回答

1

啓用級聯破壞。

課程必須在免得一個 「有很多」 或 「有一個」 與另一model.Something像

class Course < ActiveRecord::Base 
    has_many :somethings 
    has one : something 
end 

關係使其

class Course < ActiveRecord::Base 
    has_many :somethings, :dependent => :destroy 
    has one :something, :dependent => :destroy 
end 

您還可以使用

accepts_nested_attributes_for :something, :allow_destroy => true 

祝你好運!

+0

非常有幫助,謝謝! – jyli7

+0

樂意幫助你。你受歡迎! –