提交 2bcf7158 编写于 作者: P Paul Nikitochkin

On destroying do not touch destroyed belongs to association.

Fixes: #13445
上级 00fc64a6
* Do not raise `'can not touch on a new record object'` exception on destroying already destroyed
`belongs_to` association with `touch: true` option
Fixes: #13445
Example:
# Given Comment has belongs_to :post, touch: true
comment.post.destroy
comment.destroy # no longer raises an error
*Paul Nikitochkin*
* Fix a bug when assigning an array containing string numbers to a
PostgreSQL integer array column.
......
......@@ -112,7 +112,7 @@ def self.touch_record(o, foreign_key, name, touch) # :nodoc:
end
record = o.send name
unless record.nil? || record.new_record?
if record && record.persisted?
if touch != true
record.touch touch
else
......
......@@ -356,6 +356,14 @@ def test_belongs_to_with_touch_option_on_destroy
assert_queries(2) { line_item.destroy }
end
def test_belongs_to_with_touch_option_on_destroy_with_destroyed_parent
line_item = LineItem.create!
invoice = Invoice.create!(line_items: [line_item])
invoice.destroy
assert_queries(1) { line_item.destroy }
end
def test_belongs_to_with_touch_option_on_touch_and_reassigned_parent
line_item = LineItem.create!
Invoice.create!(line_items: [line_item])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册