6

レールに one_to_many 関係のモデルがあります。父親を削除したら、すべての子供を削除したいと思います。どうすればいいですか?ユーザーを削除するときに、すべての注文とそのアイテムを削除したい

私のモデルは次のとおりです。

class User < ActiveRecord::Base
  has_many :orders, :foreign_key => "id_user"
end

class Order < ActiveRecord::Base
  has_many :order_items, :foreign_key => "id_pedido"
  belongs_to :user, :foreign_key => "id_usuer"
end

class OrderItem < ActiveRecord::Base
  belongs_to :order, :foreign_key => "id_pedido"
end
4

2 に答える 2

10

jdl の答えは正しいです。:dependent => :destroy両方の関係に追加する必要があります。つまり、Userクラスでは に追加しhas_many :ordersOrderクラスでは に追加しますhas_many :order_items

また、MySQL の動作を外部キーに対して変更することもできます。たとえば、 ON DELETE CASCADE.

于 2009-09-10T08:21:23.920 に答える
5

探しているのは の:dependent => :destroyオプションhas_manyです。

has_many ドキュメント

于 2009-09-10T00:44:07.360 に答える