我的模型是:
class Campaign < ActiveRecord::Base
has_many :days, dependent: :destroy
end
class Day < ActiveRecord::Base
belongs_to :campaign
has_many :time_slots
before_destroy { time_slots.destroy_all }
end
class TimeSlot < ActiveRecord::Base
belongs_to :day
has_and_belongs_to_many :users
end
我希望能够删除一个活动并删除其所有相关日期和时间段。我还希望删除 time_slot_users 连接表中的记录。
我试过使用dependent: :destroy
,但它似乎没有级联?我应该使用before_destroy
回调吗?
destroy
和 和有什么不一样destroy_all
?我已阅读:http ://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Delete+or+destroy%3F并且区别仍然很模糊。