1

私は5つのモデルを持っています。Server、、、、、。Platform_ Game_ RetentionReport_ DataReportを使用しようとしています:dependent => :delete_allが、うまくいきません。これが私のモデルです。

class Game < ActiveRecord::Base
  attr_accessible :name

  has_many :platforms, :dependent => :delete_all
end

class Platform < ActiveRecord::Base
  attr_accessible :name, :game_id, :company_id

  belongs_to :game
  has_many :servers, :dependent => :delete_all
end

class Server < ActiveRecord::Base
  attr_accessible :name, :region, :device_type, :platform_id, :platform_server_id

  belongs_to :platform
  has_many :gm_data_reports, :dependent => :delete_all
  has_many :gm_retention_reports, :dependent => :delete_all

  delegate :company_id, :to => :platform

  validates :platform_server_id, :uniqueness => {:scope => :platform_id}
end

class DataReport < ActiveRecord::Base

 belongs_to :server
end

class RetentionReport < ActiveRecord::Base

 belongs_to :server
end

ターミナルで実行するたびにGame.delete_all、何も削除されませんPlatforms

4

1 に答える 1

5

delete_allトリガーしませんcall_backs

あなたがGame.destroy_allそれを持っていれば、あなたが望むことをするでしょう。

関連付け宣言で:dependent => :destroyorを使用できます。:dependent => :delete_all前者はアソシエーションでコールバックを実行しますが、後者は実行しません。

于 2013-10-25T23:50:45.077 に答える