CHANGELOG.md 2.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
*   Fix year value when casting a multiparameter time hash

    When assigning a hash to a time attribute that's missing a year component
    (e.g. a `time_select` with `:ignore_date` set to `true`) then the year
    defaults to 1970 instead of the expected 2000. This results in the attribute
    changing as a result of the save.

    Before:
    ```
    event = Event.new(start_time: { 4 => 20, 5 => 30 })
    event.start_time # => 1970-01-01 20:30:00 UTC
    event.save
    event.reload
    event.start_time # => 2000-01-01 20:30:00 UTC
    ```

    After:
    ```
    event = Event.new(start_time: { 4 => 20, 5 => 30 })
    event.start_time # => 2000-01-01 20:30:00 UTC
    event.save
    event.reload
    event.start_time # => 2000-01-01 20:30:00 UTC
    ```

    *Andrew White*


29 30
## Rails 6.0.0.beta1 (January 18, 2019) ##

B
bogdanvlviv 已提交
31 32 33 34
*   Add `ActiveModel::Errors#of_kind?`.

    *bogdanvlviv*, *Rafael Mendonça França*

35 36 37 38 39
*   Fix numericality equality validation of `BigDecimal` and `Float`
    by casting to `BigDecimal` on both ends of the validation.

    *Gannon McGibbon*

40 41 42 43
*   Add `#slice!` method to `ActiveModel::Errors`.

    *Daniel López Prat*

44 45 46 47 48 49
*   Fix numericality validator to still use value before type cast except Active Record.

    Fixes #33651, #33686.

    *Ryuta Kamizono*

50 51
*   Fix `ActiveModel::Serializers::JSON#as_json` method for timestamps.

R
Ryuta Kamizono 已提交
52 53 54 55 56 57 58 59 60 61 62
    Before:
    ```
    contact = Contact.new(created_at: Time.utc(2006, 8, 1))
    contact.as_json["created_at"] # => 2006-08-01 00:00:00 UTC
    ```

    After:
    ```
    contact = Contact.new(created_at: Time.utc(2006, 8, 1))
    contact.as_json["created_at"] # => "2006-08-01T00:00:00.000Z"
    ```
63 64 65

    *Bogdan Gusiev*

66 67
*   Allows configurable attribute name for `#has_secure_password`. This
    still defaults to an attribute named 'password', causing no breaking
68
    change. There is a new method `#authenticate_XXX` where XXX is the
69
    configured attribute name, making the existing `#authenticate` now an
70
    alias for this when the attribute is the default 'password'.
R
Ryuta Kamizono 已提交
71

72
    Example:
73

74
        class User < ActiveRecord::Base
75
          has_secure_password :recovery_password, validations: false
76
        end
77

78
        user = User.new()
79 80 81
        user.recovery_password = "42password"
        user.recovery_password_digest # => "$2a$04$iOfhwahFymCs5weB3BNH/uX..."
        user.authenticate_recovery_password('42password') # => user
82

R
Ryuta Kamizono 已提交
83
    *Unathi Chonco*
84

B
bogdanvlviv 已提交
85 86 87 88 89 90
*   Add `config.active_model.i18n_full_message` in order to control whether
    the `full_message` error format can be overridden at the attribute or model
    level in the locale files. This is `false` by default.

    *Martin Larochelle*

K
Kasper Timm Hansen 已提交
91
*   Rails 6 requires Ruby 2.5.0 or newer.
J
Jeremy Daer 已提交
92

K
Kasper Timm Hansen 已提交
93
    *Jeremy Daer*, *Kasper Timm Hansen*
94 95


96
Please check [5-2-stable](https://github.com/rails/rails/blob/5-2-stable/activemodel/CHANGELOG.md) for previous changes.