[Rails5] Ensure date/time columns are not nil on create/update. Take 2. #528
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.
Creating or updating records resets the attributes by mapping the hash using ActiveRecord's
Attribute#forgetting_assignmentmethod. This method essentiall mimics the reload by setting the attributes to FromDatabase using the FromUser value "for the database".rails/rails@07723c23
This is a problem for us because the
value_for_databasefor date time objects are strings that can not be re-parsed due to SQL Server's time formats. For example, a date of August 18th 2016 would be formatted as '08-19-2016' and fail deserialize:Both ActiveModel's date and time types rescue
Date.parsemethods ofnew_dateandnew_timewith nil. It was suggested that we use Data classes for our time types and we may explore that after this commit which essentially prepends a newforgetting_assignmentmethod that checks the type. If it is a SQL Server date/time, it will just convert that value object to a FromDatabase using the existing value.cc @sgrif