2011-10-21 2 views
0

내가 내 "물론"모든 오브젝트 파괴하는 갈퀴 작업을 실행하는거야 (레일) 파괴하기를 거부 :일부 개체는

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; cs .errors.inspect 넣기 – Nycen

+0

아, 그랬어! 그것은 내가 삭제를 거부 한 각 코스에 속한 적어도 하나의 "line_item"오브젝트를 가지고 있음을 보여주었습니다. .inspect의 출력은 "{: base => [\"Line Items present \ "]}"입니다. line_items 삭제는 처음으로 효과가있었습니다. 감사! – jyli7

답변

1

폭포가 파괴 사용 : 내가 콘솔을 통해 수동으로 각 코스를 삭제하려고하면

,이 얻을.

코스는 하나 "가 많은"않도록 또는

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

같은 다른 model.Something와 관계가

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

도와 드리겠습니다. 너는 환영 받는다! –