Add STI support to hash-based model initializer #426
Merged
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.
What does this PR do?
Besides fixing STI model initializing using hash constructor this PR also adds extra layer of database column value coercing. This means that when a result set is read as a hash based on the received data types specification from the database model adapter is used to coerce them based on the attribute desired type.
Fix #403
Release notes
Model
Adapter::Base.coerce_database_value
in constructors accepting a hash or named tuple to coerce values for columns that don't have specified converterAdapter
Base.coerce_database_value
method to provide interface to perform coercing from default database type used to read column to hash to a desired model attribute type