提交 48663990 编写于 作者: L Lucas Mazza

`ActiveRecord::Base.no_touching` no longer triggers callbacks or start empty transactions.

Closes #14841.
上级 d10e2ca9
* `ActiveRecord::Base.no_touching` no longer triggers callbacks or start empty transactions.
Fixes #14841.
*Lucas Mazza*
* Fix name collision with `Array#select!` with `Relation#select!`.
Fixes #14752.
......
......@@ -296,7 +296,6 @@ class Base
include Core
include Persistence
include NoTouching
include ReadonlyAttributes
include ModelSchema
include Inheritance
......@@ -318,6 +317,7 @@ class Base
include NestedAttributes
include Aggregations
include Transactions
include NoTouching
include Reflection
include Serialization
include Store
......
......@@ -112,7 +112,7 @@ def test_touching_many_attributes_updates_them
previous_starting = task.starting
previous_ending = task.ending
task.touch(:starting, :ending)
assert_not_equal previous_starting, task.starting
assert_not_equal previous_ending, task.ending
assert_in_delta Time.now, task.starting, 1
......@@ -170,6 +170,25 @@ def test_no_touching_threadsafe
assert !@developer.no_touching?
end
def test_no_touching_with_callbacks
klass = Class.new(ActiveRecord::Base) do
self.table_name = "developers"
attr_accessor :after_touch_called
after_touch do |user|
user.after_touch_called = true
end
end
developer = klass.first
klass.no_touching do
developer.touch
assert_not developer.after_touch_called
end
end
def test_saving_a_record_with_a_belongs_to_that_specifies_touching_the_parent_should_update_the_parent_updated_at
pet = Pet.first
owner = pet.owner
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册