Skip to content

Instantly share code, notes, and snippets.

@klondaiker
Last active October 1, 2019 12:32
Show Gist options
  • Save klondaiker/e486c540c92318d0f8e7d6d9d7cb2cb5 to your computer and use it in GitHub Desktop.
Save klondaiker/e486c540c92318d0f8e7d6d9d7cb2cb5 to your computer and use it in GitHub Desktop.

При инициализации объекта ApplicationRecord с существующим id, все связанные ассоциаций начинают удаляться из БД при их назначении

class Order < ApplicationRecord
  has_one :order_payment, dependent: :delete
end

class OrderPayment < ApplicationRecord
  belongs_to :order
end
> order = Order.create!
=> #<Order id: 1>
> OrderPayment.create! order_id: order.id
=> #<OrderPayment id: 1, order_id: 1>
> Order.new(id: 1, order_payment: OrderPayment.new)
OrderPayment Load (4.8ms)  SELECT  "order_payments".* FROM "order_payments" WHERE "order_payments"."order_id" = ? LIMIT ?  [["order_id", 1], ["LIMIT", 1]]
OrderPayment Destroy (13.8ms)  DELETE FROM "order_payments" WHERE "order_payments"."id" = ?  [["id", 1]]

Rails 5.2.3, ruby 2.6.4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment