diff options
author | Joel Hawksley <joelhawksley@github.com> | 2019-06-03 08:27:09 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-03 08:27:09 -0600 |
commit | 60af9db3745f994e8a4bd7afe9dfa6ea8be7bb7c (patch) | |
tree | 99c9199bf71835f18e2c746b04abe70569e5baed /activemodel/lib | |
parent | a85c372798723b900762c27e62c35689905327aa (diff) | |
parent | c926ca46280aee795b98206dd0707a96b9423cc5 (diff) | |
download | rails-60af9db3745f994e8a4bd7afe9dfa6ea8be7bb7c.tar.gz rails-60af9db3745f994e8a4bd7afe9dfa6ea8be7bb7c.tar.bz2 rails-60af9db3745f994e8a4bd7afe9dfa6ea8be7bb7c.zip |
Merge pull request #2 from rails/master
merge master
Diffstat (limited to 'activemodel/lib')
-rw-r--r-- | activemodel/lib/active_model/type/helpers/time_value.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/activemodel/lib/active_model/type/helpers/time_value.rb b/activemodel/lib/active_model/type/helpers/time_value.rb index 735b9a75a6..dab196d653 100644 --- a/activemodel/lib/active_model/type/helpers/time_value.rb +++ b/activemodel/lib/active_model/type/helpers/time_value.rb @@ -22,10 +22,17 @@ module ActiveModel end def apply_seconds_precision(value) - return value unless precision && value.respond_to?(:usec) - number_of_insignificant_digits = 6 - precision + return value unless precision && value.respond_to?(:nsec) + + number_of_insignificant_digits = 9 - precision round_power = 10**number_of_insignificant_digits - value.change(usec: value.usec - value.usec % round_power) + rounded_off_nsec = value.nsec % round_power + + if rounded_off_nsec > 0 + value.change(nsec: value.nsec - rounded_off_nsec) + else + value + end end def type_cast_for_schema(value) |