forked from paper-trail-gem/paper_trail
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This updates the code to work with Rails 5.1.0.alpha, as of commit rails/rails@1bdc395. The biggest change was to call the new methods provided by `ActiveRecord::Dirty` when needed. In the next version of Rails after 5.1, dirty will be "cleared" before after_save callbacks are run. This means that code in an after_save callback will behave the same as if it was run after calling `.save`. Since the concept of "changed" is fairly nebulous, two new method sets were introduced with names that specify whether they're operating on changes from what we think is in the database to what's in memory, or the changes that were just persisted. Paper trail will now use the latter set of methods if available and called from an after_ callback. There were a few other unrelated changes required to get this working on master. The first was the change from `appear_as_new_record` to `appear_as_unpersisted`. This was due to a single test that broke as a result of rails/rails@c546a2b where reifying a version with a nil has_one association was persisting the change to the foreign key. I am actually unsure how that commit caused the problem (or more specifically, I'm unsure how it was passing before). However, as best as I can tell, the purpose of `appear_as_new_record` was to attempt to prevent the callbacks in `AutosaveAssociation` (which is the module responsible for persisting foreign key changes earlier than most people want most of the time because backwards compatibility or the maintainer hates himself or something) from running. By also stubbing out `persisted?` we can actually prevent those. A more stable option might be to use `suppress` instead, similar to the other branch in `reify_has_one`. The remaining breakage was due to the `Song` model relying on internals that have changed from underneath it. From Rails 5 onwards there is a public API available to do what it wants, so we can just use that instead. This commit is not expected to pass on Rails 3, as paper-trail-gem#898 makes it sound like support might be dropped. If this needs to be ammended to support Rails 3, I will do so, but I will also grumble very loudly about it.
- Loading branch information
Showing
3 changed files
with
91 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters