这是我的RoR应用程序的设置方式
note.rb
belongs_to :user
has_many :note_categories
has_many :categories, :through => :note_categories
category.rb
has_many :note_categories
has_many :notes, :through => :note_categories
我想这样做,以便当用户删除笔记时,也会删除note_categories表中的相应条目。我使用:dependent => :毁灭那样做?
另外,如果我想这样做,以致如果用户删除了一个音符,这意味着它没有更多的音符,那么类别本身就被删除了,我该怎么做?谢谢你的阅读。
答案 0 :(得分:3)
我想让它成为一个用户 删除相应的注释 note_categories表中的条目是 也被删除了。我使用:依赖 => :破坏这样做?
是的,这是正确的。
另外,如果我想这样做的话 如果用户删除了一个注释,那么 意味着没有更多的笔记 与它有的类别,类别 本身被删除了,我该怎么做 是什么?
您使用after_destroy回调。
class Note < ActiveRecord::Base
belongs_to :user
has_many :note_categories, :dependent => :destroy
has_many :categories, :through => :note_categories
end
class Category < ActiveRecord::Base
has_many :note_categories, :dependent => :destroy
has_many :notes, :through => :note_categories
end
class NoteCategory < ActiveRecord::Base
belongs_to :note
belongs_to :category
after_destroy { category.destroy if category.notes.empty? }
end