我有这样的多对多关系:
class Event < ActiveRecord::Base
has_many :calendar_events
has_many :calendars, :through => :calendar_events
# ...
end
我想这样做,以便当我调用some_event.destroy
时,Ruby on Rails会删除calendar_events
表中的关联记录。根据API文档,我假设你这样做......
class Event < ActiveRecord::Base
has_many :calendar_events, :dependent => :delete_all
has_many :calendars, :through => :calendar_events
# ...
end
这是正确的方法吗?
答案 0 :(得分:1)
是。这将仅删除所有日历事件。
答案 1 :(得分:1)
你也可以:destroy而不是:delete_all。但是,对于大型关联对象集,删除全部更快。
请参阅has_many上的Rails文档 http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M001789