1. 01 9月, 2017 1 次提交
    • M
      Clarify intentions around method redefinitions · 2e6658ae
      Matthew Draper 提交于
      Don't use remove_method or remove_possible_method just before a new
      definition: at best the purpose is unclear, and at worst it creates a
      race condition.
      
      Instead, prefer redefine_method when practical, and
      silence_redefinition_of_method otherwise.
      2e6658ae
  2. 27 8月, 2017 1 次提交
  3. 22 8月, 2017 1 次提交
  4. 18 8月, 2017 1 次提交
    • V
      Simplify ActiveModel::Errors#generate_message · 53c98196
      Viktar Basharymau 提交于
      Besides making the code easier to read, this commit
      also makes it faster:
      
      * We don't eval `@base.class.respond_to?(:i18n_scope)` twice
      * We only eval `@base.class.i18n_scope` once
      * We don't call `flatten!` because it's not needed anymore
      * We don't call `compact` because all elements are Symbols
      53c98196
  5. 08 8月, 2017 1 次提交
  6. 01 8月, 2017 1 次提交
  7. 17 7月, 2017 2 次提交
    • S
      Allow multiparameter assigned attributes to be used with `text_field` · 1519e976
      Sean Griffin 提交于
      Between 4.2 and 5.0 the behavior of how multiparameter attributes
      interact with `_before_type_cast` changed. In 4.2 it returns the
      post-type-cast value. After 5.0, it returns the hash that gets sent to
      the type. This behavior is correct, but will cause an issue if you then
      tried to render that value in an input like `text_field` or
      `hidden_field`.
      
      In this case, we want those fields to use the post-type-cast form,
      instead of the `_before_type_cast` (the main reason it uses
      `_before_type_cast` at all is to avoid losing data when casting a
      non-numeric string to integer).
      
      I've opted to modify `came_from_user?` rather than introduce a new
      method for this as I want to avoid complicating that contract further,
      and technically the multiparameter hash didn't come from assignment, it
      was constructed internally by AR.
      
      Close #27888.
      1519e976
    • K
      Use frozen string literal in activemodel/ · d7b1521d
      Kir Shatrov 提交于
      d7b1521d
  8. 14 7月, 2017 2 次提交
  9. 08 7月, 2017 1 次提交
    • J
      Add ActiveModel::Errors#merge! · 3650ca98
      Jahfer Husain 提交于
      ActiveModel::Errors#merge! allows ActiveModel::Errors to append errors from
      a separate ActiveModel::Errors instance onto their own.
      
      Example:
      
          person = Person.new
          person.errors.add(:name, :blank)
      
          errors = ActiveModel::Errors.new(Person.new)
          errors.add(:name, :invalid)
      
          person.errors.merge!(errors)
          puts person.errors.messages
          # => { name: ["can't be blank", "is invalid"] }
      3650ca98
  10. 06 7月, 2017 1 次提交
  11. 02 7月, 2017 1 次提交
  12. 01 7月, 2017 2 次提交
  13. 28 6月, 2017 2 次提交
  14. 21 6月, 2017 1 次提交
  15. 20 6月, 2017 1 次提交
  16. 15 6月, 2017 1 次提交
  17. 14 6月, 2017 3 次提交
  18. 31 5月, 2017 1 次提交
  19. 30 5月, 2017 1 次提交
  20. 27 5月, 2017 2 次提交
  21. 23 5月, 2017 1 次提交
  22. 22 5月, 2017 1 次提交
  23. 03 5月, 2017 2 次提交
  24. 30 4月, 2017 1 次提交
  25. 24 4月, 2017 2 次提交
  26. 15 4月, 2017 1 次提交
    • A
      Move around AR::Dirty and fix _attribute method · 83d6cc48
      Aaron Patterson 提交于
      We already have a _read_attribute method that can get the value we need
      from the model.  Lets define that method in AM::Dirty and use the
      existing one from AR::Dirty rather than introducing a new method.
      83d6cc48
  27. 13 4月, 2017 1 次提交
  28. 12 4月, 2017 2 次提交
  29. 02 4月, 2017 1 次提交
    • T
      No need to check nil · d1ca18d2
      Tsukuru Tanimichi 提交于
      ```ruby
      nil.respond_to?(:stringify_keys) # => false
      ```
      
      ```ruby
      include ActiveModel::AttributeAssignment
      Object.new.assign_attributes(nil) #  => ArgumentError: When assigning attributes, you must pass a hash as an argument.
      ```
      d1ca18d2
  30. 01 4月, 2017 1 次提交