From 5116ca2bf492a1a0fe74e8f7f3875381f4ce31d3 Mon Sep 17 00:00:00 2001 From: Xenor Chang Date: Thu, 16 May 2024 09:38:57 +0800 Subject: [PATCH 1/2] Only set the attribute value in reify when it's different --- lib/paper_trail/reifier.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/paper_trail/reifier.rb b/lib/paper_trail/reifier.rb index d78f8720..3e9e0d1a 100644 --- a/lib/paper_trail/reifier.rb +++ b/lib/paper_trail/reifier.rb @@ -92,7 +92,7 @@ def init_unversioned_attrs(attrs, model) # @api private def reify_attribute(k, v, model, version) if model.has_attribute?(k) - model[k.to_sym] = v + model[k.to_sym] = v unless model.attributes[k] == v elsif model.respond_to?("#{k}=") model.send("#{k}=", v) elsif version.logger From cfe769acf3876a6d3db53a3098a89070316c4209 Mon Sep 17 00:00:00 2001 From: Xenor Chang Date: Wed, 29 May 2024 08:38:23 +0800 Subject: [PATCH 2/2] Changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f177347b..4b4ffef3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ recommendations of [keepachangelog.com](http://keepachangelog.com/). ### Fixed -- None +- [#1473](https://github.com/paper-trail-gem/paper_trail/pull/1473) - Only set the attribute value in `reify` when it's different. This potentially prevents default readonly attributes from being set again, and aligns with Rails 7.1's new config default `raise_on_assign_to_attr_readonly`. ## 15.1.0 (2023-10-22)