1. 29 10月, 2016 1 次提交
  2. 27 10月, 2016 3 次提交
    • M
      Fix HABTM associations join table resolver bug on constants and symbols · 94821b4b
      Mehmet Emin İNAÇ 提交于
      Using Constant and symbol class_name option for associations are valid but raises exception on HABTM associations.
      There was a test case which tries to cover symbol class_name usage but doesn't cover correctly. Fixed both symbol usage and constant usage as well.
      
      These are all working as expected now;
      ```
        has_and_belongs_to_many :foos, class_name: 'Foo'
        has_and_belongs_to_many :foos, class_name: :Foo
        has_and_belongs_to_many :foos, class_name: Foo
      ```
      
      Closes #23767
      94821b4b
    • X
      let Regexp#match? be globally available · 56832e79
      Xavier Noria 提交于
      Regexp#match? should be considered to be part of the Ruby core library. We are
      emulating it for < 2.4, but not having to require the extension is part of the
      illusion of the emulation.
      56832e79
    • S
      Clear the correct query cache · fa7efca5
      Samuel Cochran 提交于
      This executor currently relies on `ActiveRecord::Base.connection` not
      changing between `prepare` and `complete`. If something else returns
      the current ActiveRecord connection to the pool early then this
      `complete` call will fail to clear the correct query cache and restore
      the original `query_cache_enabled` status.
      
      This has for example been happening in Sidekiq:
      
           https://github.com/mperham/sidekiq/pull/3166
      
      We can just keep track of the connection as part of the exector state.
      fa7efca5
  3. 26 10月, 2016 1 次提交
  4. 23 10月, 2016 3 次提交
  5. 22 10月, 2016 3 次提交
  6. 21 10月, 2016 1 次提交
    • A
      Use old typecasting method if no type casted binds are passed in · 13455110
      Aaron Patterson 提交于
      Query cache doesn't type cast bind parameters since it isn't
      actually querying the database, so it can't pass those values in.  Type
      casting in the query cache method would cause the values to be type cast
      twice in the case that there is a cache miss (since the methods it calls
      will type cast *again*).  If logging is disabled, then adding the type
      cast code to the query cache method will needlessly typecast the values
      (since the only reason those values are type cast is for display in the
      logs).
      
      Fixes #26828.
      13455110
  7. 14 10月, 2016 1 次提交
  8. 12 10月, 2016 1 次提交
    • R
      Fix `warning: ambiguous first argument` · f53f69bd
      Ryuta Kamizono 提交于
      ```
      test/cases/adapters/postgresql/case_insensitive_test.rb:12: warning: ambiguous first argument; put parentheses or a space even after `/' operator
      test/cases/adapters/postgresql/case_insensitive_test.rb:16: warning: ambiguous first argument; put parentheses or a space even after `/' operator
      test/cases/adapters/postgresql/case_insensitive_test.rb:20: warning: ambiguous first argument; put parentheses or a space even after `/' operator
      test/cases/adapters/postgresql/case_insensitive_test.rb:24: warning: ambiguous first argument; put parentheses or a space even after `/' operator
      ```
      f53f69bd
  9. 11 10月, 2016 1 次提交
    • R
      Fix table comment dumping · 0780c444
      Ryuta Kamizono 提交于
      Follow up to #26735.
      
      If `table_options` returns `{ comment: nil }`, `create_table` line is
      broken.
      
      Example:
      
      ```ruby
        create_table "accounts", force: :cascade,  do |t|
      ```
      0780c444
  10. 10 10月, 2016 1 次提交
    • R
      Dump index options to pretty format · 5025fd3a
      Ryuta Kamizono 提交于
      ```ruby
        # Before
        t.index ["firm_id", "type", "rating"], name: "company_index", order: {"rating"=>:desc}, using: :btree
      
        # After
        t.index ["firm_id", "type", "rating"], name: "company_index", order: { rating: :desc }, using: :btree
      ```
      5025fd3a
  11. 08 10月, 2016 2 次提交
  12. 07 10月, 2016 1 次提交
  13. 03 10月, 2016 2 次提交
  14. 01 10月, 2016 1 次提交
  15. 30 9月, 2016 1 次提交
    • S
      Don't skip in-memory insertion of associations when loaded in validate · 268a5bb0
      Sean Griffin 提交于
      This was caused by 6d0d83a3. While the
      bug it's trying to fix is handled if the association is loaded in an
      after_(create|save) callback, it doesn't handle any cases that load the
      association before the persistence takes place (validation, or before_*
      filters). Instead of caring about the timing of persistence, we can just
      ensure that we're not double adding the record instead.
      
      The test from that commit actually broke, but it was not because the bug
      has been re-introduced. It was because `Bulb` in our test suite is doing
      funky things that look like STI but isn't STI, so equality comparison
      didn't happen as the loaded model was of a different class.
      
      Fixes #26661.
      268a5bb0
  16. 27 9月, 2016 2 次提交
  17. 24 9月, 2016 1 次提交
  18. 23 9月, 2016 1 次提交
    • P
      Return true if attribute is not changed for update_attribute · 730e99af
      Prathamesh Sonpatki 提交于
      - If the attribute is not changed, then update_attribute does not run
        SQL query, this effectively means that no change was made to the
        attribute.
      - This change was made in https://github.com/rails/rails/commit/0fcd4cf5
        to avoid a SQL call.
      - But the change resulted into `nil` being returned when there was no
        change in the attribute value.
      - This commit corrects the behavior to return true if there is no change
        in attribute value. This is same as previous behavior of Rails 4.2
        plus benefit of no additional SQL call.
      - Fixes #26593.
      730e99af
  19. 22 9月, 2016 1 次提交
  20. 20 9月, 2016 1 次提交
    • R
      Always store errors details information with symbols · d406014b
      Rafael Mendonça França 提交于
      When the association is autosaved we were storing the details with
      string keys. This was creating inconsistency with other details that are
      added using the `Errors#add` method. It was also inconsistent with the
      `Errors#messages` storage.
      
      To fix this inconsistency we are always storing with symbols. This will
      cause a small breaking change because in those cases the details could
      be accessed as strings keys but now it can not.
      
      The reason that we chose to do this breaking change is because `#details`
      should be considered a low level object like `#messages` is.
      
      Fix #26499.
      
      [Rafael Mendonça França + Marcus Vieira]
      d406014b
  21. 17 9月, 2016 1 次提交
  22. 14 9月, 2016 3 次提交
  23. 12 9月, 2016 2 次提交
    • Y
      Add tests for ActiveRecord::Enum#enum when suffix specified · 6009107c
      Yosuke Kabuto 提交于
      Make name of attribute medium instead of normal
      6009107c
    • Y
      remove duplicated fixture set names · 1b128f89
      yuuji.yaginuma 提交于
      If using namespaced fixtures, get following Ruby warning.
      
      ```
      activerecord/lib/active_record/fixtures.rb:922: warning: method redefined; discarding old admin_foos
      activerecord/lib/active_record/fixtures.rb:922: warning: previous definition of admin_foos was here
      ```
      
      This is happening because of the multiple set the same path when setting the
      fixture name. Fix to remove the duplicate path.
      1b128f89
  24. 11 9月, 2016 3 次提交
  25. 08 9月, 2016 2 次提交