2012-11-04 18 views
38

Bu bölüm benim için çok basit bir gözetim olabilir, ancak has_many :through aracılığıyla birleştirilen iki nesne arasındaki bir ilişkiyi kaldırmak için basit bir yöntem hatırlayamıyorum. IE: İki nesneleri tag ve photo varsaAktif Kayıt has_many: ilişkili bir kaydı kaldırarak

class Photo 
    has_many :tags, :through => :taggings 
    has_many :taggings, :dependent => :destroy 
end 

class Tags 
    has_many :photos, :through => :taggings 
    has_many :taggings, :dependent => :destroy 
end 

class Taggings 
    belongs_to :photo 
    belongs_to :tag 
end 

, sadece bunu yaparak bunları ilişkilendirebilirsiniz: Yani

photo.tags << tag 

buna eşit derecede basit tersi var mıdır? yani:

burada
photo.tags.remove tag 

cevap

56

istediğiniz ne: Bu `modeli katılmak üzerinde after_destroy` geri aramalar` before_destroy` tetikleyebilir ya olmaz

photo.tags.delete(tag) 
+23

Not olduğunu - delete' 'yerine eğer' destroy' kullanmak buna ihtiyacın var. – PinnyM

İlgili konular