1. 29 4月, 2015 1 次提交
  2. 31 3月, 2015 1 次提交
    • K
      use Model.reset_column_information to clear table cache connection wide. · bf6a33fd
      Kuldeep Aggarwal 提交于
          `widgets` table is being created in `primary_keys_test.rb` for PostgreSQLAdapter, MysqlAdapter, Mysql2Adapter
          and it makes test to fail earlier.
      
          Before:
            `bundle exec rake mysql2:test`
      
          ```
          Finished in 127.287669s, 35.5258 runs/s, 97.8885 assertions/s.
      
            1) Error:
          PersistenceTest::SaveTest#test_save_touch_false:
          ActiveModel::UnknownAttributeError: unknown attribute 'name' for #<Class:0x0000000a7d6ef0>.
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:36:in `rescue in _assign_attribute'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:34:in `_assign_attribute'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:40:in `block in _assign_attributes'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:39:in `each'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:39:in `_assign_attributes'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/attribute_assignment.rb:26:in `_assign_attributes'
              /home/kd/projects/kd-rails/activemodel/lib/active_model/attribute_assignment.rb:33:in `assign_attributes'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/core.rb:293:in `initialize'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/inheritance.rb:61:in `new'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/inheritance.rb:61:in `new'
              /home/kd/projects/kd-rails/activerecord/lib/active_record/persistence.rb:50:in `create!'
              /home/kd/projects/kd-rails/activerecord/test/cases/persistence_test.rb:913:in `test_save_touch_false'
      
          4522 runs, 12460 assertions, 0 failures, 1 errors, 4 skips
          ```
      
          After:
            `bundle exec rake mysql2:test`
      
          ```
             Finished in 135.785086s, 33.3026 runs/s, 91.7774 assertions/s.
      
             4522 runs, 12462 assertions, 0 failures, 0 errors, 4 skips
          ```
      bf6a33fd
  3. 17 3月, 2015 1 次提交
    • B
      Closes rails/rails#18864: Renaming transactional fixtures to transactional tests · 09658635
      Brandon Weiss 提交于
      I’m renaming all instances of `use_transcational_fixtures` to
      `use_transactional_tests` and “transactional fixtures” to
      “transactional tests”.
      
      I’m deprecating `use_transactional_fixtures=`. So anyone who is
      explicitly setting this will get a warning telling them to use
      `use_transactional_tests=` instead.
      
      I’m maintaining backwards compatibility—both forms will work.
      `use_transactional_tests` will check to see if
      `use_transactional_fixtures` is set and use that, otherwise it will use
      itself. But because `use_transactional_tests` is a class attribute
      (created with `class_attribute`) this requires a little bit of hoop
      jumping. The writer method that `class_attribute` generates defines a
      new reader method that return the value being set. Which means we can’t
      set the default of `true` using `use_transactional_tests=` as was done
      previously because that won’t take into account anyone using
      `use_transactional_fixtures`. Instead I defined the reader method
      manually and it checks `use_transactional_fixtures`. If it was set then
      it should be used, otherwise it should return the default, which is
      `true`. If someone uses `use_transactional_tests=` then it will
      overwrite the backwards-compatible method with whatever they set.
      09658635
  4. 05 3月, 2015 1 次提交
  5. 18 1月, 2015 1 次提交
  6. 28 12月, 2014 1 次提交
  7. 20 12月, 2014 1 次提交
    • P
      Allow ActiveRecord::Relation#update to run on result of a relation with callbacks and validations · 5ef713c5
      Prathamesh Sonpatki 提交于
      - Right now, there is no method to update multiple records with
        validations and callbacks.
      - Changed the behavior of existing `update` method so that when `id`
        attribute is not given and the method is called on an `Relation`
        object, it will execute update for every record of the `Relation` and
        will run validations and callbacks for every record.
      - Added test case for validating that the callbacks run when `update` is
        called on a `Relation`.
      - Changed test_create_columns_not_equal_attributes test from
        persistence_test to include author_name column on topics table as it
        it used in before_update callback.
      - This change introduces performance issues when a large number of
        records are to be updated because it runs UPDATE query for every
        record of the result. The `update_all` method can be used in that case
        if callbacks are not required because it will only run single UPDATE
        for all the records.
      5ef713c5
  8. 29 11月, 2014 1 次提交
  9. 14 11月, 2014 1 次提交
  10. 06 7月, 2014 1 次提交
    • G
      Fix mysql/mysql2 failing with FK constraint errors · c0310165
      Godfrey Chan 提交于
      One of the author fixture we have ("david") references an author address by ID.
      Since we disable FK checks when inserting fixtures, this is all fine until we
      try to update it, at which point MySQL would complain about the missing row
      referenced by the `author_address_id`.
      
      [Godfrey Chan, Matthew Draper]
      c0310165
  11. 04 7月, 2014 1 次提交
  12. 23 6月, 2014 1 次提交
    • S
      `reload` should fully reload attributes · 3529bbd8
      Sean Griffin 提交于
      `reload` is meant to put a record in the same state it would be if you
      were to do `Post.find(post.id)`. This means we should fully replace the
      attributes hash.
      3529bbd8
  13. 14 6月, 2014 1 次提交
    • S
      Introduce an Attribute object to handle the type casting dance · 6f08db05
      Sean Griffin 提交于
      There's a lot more that can be moved to these, but this felt like a good
      place to introduce the object. Plans are:
      
      - Remove all knowledge of type casting from the columns, beyond a
        reference to the cast_type
      - Move type_cast_for_database to these objects
      - Potentially make them mutable, introduce a state machine, and have
        dirty checking handled here as well
      - Move `attribute`, `decorate_attribute`, and anything else that
        modifies types to mess with this object, not the columns hash
      - Introduce a collection object to manage these, reduce allocations, and
        not require serializing the types
      6f08db05
  14. 13 6月, 2014 1 次提交
  15. 04 6月, 2014 1 次提交
  16. 20 5月, 2014 1 次提交
  17. 14 5月, 2014 1 次提交
  18. 07 5月, 2014 1 次提交
  19. 03 5月, 2014 1 次提交
  20. 19 4月, 2014 1 次提交
  21. 12 3月, 2014 1 次提交
  22. 28 1月, 2014 1 次提交
  23. 27 12月, 2013 1 次提交
  24. 26 6月, 2013 1 次提交
  25. 22 5月, 2013 1 次提交
  26. 12 5月, 2013 1 次提交
  27. 04 4月, 2013 1 次提交
  28. 28 3月, 2013 2 次提交
  29. 22 3月, 2013 1 次提交
  30. 07 3月, 2013 1 次提交
  31. 21 2月, 2013 1 次提交
  32. 12 2月, 2013 1 次提交
  33. 04 1月, 2013 2 次提交
  34. 02 1月, 2013 1 次提交
  35. 07 12月, 2012 1 次提交
    • C
      Unscope update_column(s) query to ignore default scope · 0e67f793
      Carlos Antonio da Silva 提交于
      When applying default_scope to a class with a where clause, using
      update_column(s) could generate a query that would not properly update
      the record due to the where clause from the default_scope being applied
      to the update query.
      
          class User < ActiveRecord::Base
            default_scope where(active: true)
          end
      
          user = User.first
          user.active = false
          user.save!
      
          user.update_column(:active, true) # => false
      
      In this situation we want to skip the default_scope clause and just
      update the record based on the primary key. With this change:
      
          user.update_column(:active, true) # => true
      
      Fixes #8436.
      0e67f793
  36. 02 12月, 2012 1 次提交
  37. 17 11月, 2012 1 次提交
  38. 29 10月, 2012 1 次提交