0

クラスのステータスとチケットを持っている

class Status < ActiveRecord::Base
  has_many :tickets
end

class Ticket < ActiveRecord::Base
  belongs_to :status
  attr_accessible :name, :status_id
end

ビューには、チケットのステータスを選択できるドロップダウン メニューがあり、ステータス ID はオプションの値です。ステータスを削除しようとすると問題が発生します。削除されたステータスのステータス ID がチケットに保存されたままです。ステータスが破棄されたチケットのすべてのステータス ID を無効にするか、それらのチケットのステータス ID をアクティブなステータスに変更するにはどうすればよいですか?

4

2 に答える 2

2

:dependent => :destroyチケットに使います。

class Status < ActiveRecord::Base
  has_many :tickets, :dependent => :destroy  #`:dependent => :nullify` to set all foreign keys to nil
end

これにより、ステータスが削除されたすべてのチケット レコードが削除されます。

于 2013-03-27T19:22:04.583 に答える
0
class Status < ActiveRecord::Base
  has_many :tickets, dependent: :destroy
end

これは、チケットがステータスに依存していることを意味します。ステータスが破棄されると、関連するすべてのチケットも破棄されます。そこで と の違いがより顕著#deleteになります。#destroy

于 2013-03-27T19:25:43.590 に答える