Open codez opened 3 years ago
What version of Rails/ActiveRecord are you using?
6.1.3.2
Hi, I have this same problem because we have disabled time zone award system-wide with the config option config.active_record.time_zone_aware_attributes = false
and because the method time_zone_aware?
in validator.rb
here does not check if this config flag is false and then return true, making the parsing wrong.
I wrote a patch PR for this #202
When testing if a certain attribute is time zone aware in the validator, also check the value of
ActiveRecord::Base.time_zone_aware_types
.We have
ActiveRecord::Base.time_zone_aware_types = [:datetime]
, hence :time types are not time zone aware. When validating times, they are still converted to CET, giving wrong validation errors.This problem arised with the upgrade to 5.0, because
skip_time_zone_conversion_for_attributes
is empty in our case, which leads to the attribute being interpreted as time zone aware wrongly. In version 4.1,timeliness_attribute_timezone_aware?
returned false by default.