Restore behavior to always store unknown attributes in the database #169
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Our application uses StoreModel with the
serialize_unknown_attributes
option set tofalse
.Previously, StoreModel versions prior to 2.1.1 always stored unknown attributes in the database. However, now, unknown attributes are not stored unless the
serialize_unknown_attributes
option is set totrue
. This change was inconvenient for us; therefore, we want to restore the behavior of storing unknown attributes in the database, regardless of the setting of theserialize_unknown_attributes
option.The fix was straightforward. Furthermore, to ensure this behavior does not break, I have improved the tests for the
serialize
method in eachType
class.However, this change will again alter the behavior of storing unknown attributes in the database. I considered adding an option to choose whether to store unknown attributes or not. The challenge, then, is deciding what the default value for this new option should be. Considering current users who have the
serialize_unknown_attributes
option enabled, the default should logically be to store. Ultimately, this would amount to a similar breaking change.Nevertheless, it simply restores the behavior of the previous version.