2
好了,我有2個型號,一個has_many :through
關係:依賴摧毀走出去的範圍
class Server < ActiveRecord::Base
has_many :services, :through :servers_services, :dependent => :destroy
has_many :servers_services, :dependent => :destroy
def destroy!
options = {:name => self.name, :services => self.services.map { |s| s.attributes }}
Resque.enqueue(Cluster::DestroyServer, options)
self.destroy
end
end
和
class Service
has_many :servers, :through => :servers_services
has_many :servers_services
end
這些連接通過:
class ServersService < ActiveRecord::Base
belongs_to :server
belongs_to :service
end
的destroy!
方法在以前的服務器模型中工作,但現在沒有做它應該做的。它應該找到與Server
關聯的所有Services
,觸發Resque
任務(其工作原理),然後銷燬Server
及其關聯的Services
。
然而,它正在銷燬所有ServerServices
(字面上整個表格),而不僅僅是與Server
對象關聯的對象,它打破了所有關聯。有什麼明顯的我在這裏失蹤?