aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #26183 from Shopify/fix-no-touching-touch-laterRafael França2016-08-162-1/+5
|\ | | | | Makes touch_later respects no_touching policy
| * Makes touch_later respects no_touching policyJean Boussier2016-08-162-1/+5
| |
* | Add array column documentationoss922016-08-161-0/+4
| |
* | Merge pull request #26117 from kamipo/make_association_quary_to_preparable_step1Rafael Mendonça França2016-08-161-11/+11
|\ \ | | | | | | | | | Make association queries to preparable: Step 1
| * | Make association queries to preparable: Step 1Ryuta Kamizono2016-08-111-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently association queries cannot be preparable. ```ruby Post.where(author_id: 1).to_a # => SELECT "posts".* FROM "posts" WHERE "posts"."author_id" = ? [["author_id", 1]] Post.where(author: 1).to_a # => SELECT "posts".* FROM "posts" WHERE "posts"."author_id" = 1 ``` To make association queries to preparable, it should be handled in `create_binds_for_hash`. This change is a first step for it.
* | | Merge pull request #26074 from kamipo/where_by_attribute_with_array_or_rangeRafael França2016-08-161-7/+11
|\ \ \ | | | | | | | | `where` by `array|range` attribute with array or range value
| * | | `where` by `array|range` attribute with array or range valueRyuta Kamizono2016-08-111-7/+11
| |/ / | | | | | | | | | | | | | | | | | | Currently predicate builder cannot build a predicate for `array|range` attribute. This commit fixes the issue. Related #25671.
* | | Merge pull request #26097 from Dagnan/fix_recordnotfound_args_rebasedRafael França2016-08-161-4/+6
|\ \ \ | | | | | | | | When calling association.find RecordNotFound is now raised with the s…
| * | | When calling association.find RecordNotFound is now raised with the same ↵Michel Pigassou2016-08-131-4/+6
| |/ / | | | | | | | | | argument as when we do it in Record.find (primary_key, id and model).
* | | Merge pull request #26151 from kamipo/avoid_to_allow_unused_splat_argsRafael França2016-08-162-5/+3
|\ \ \ | | | | | | | | Avoid to allow unused splat args for `t.timestamps` in `create_table`
| * | | Avoid to allow unused splat args for `t.timestamps` in `create_table`Ryuta Kamizono2016-08-142-5/+3
| |/ / | | | | | | | | | | | | | | | Unfortunately `t.timestamps` in `create_table` allows unused splat args. But the same one in `change_table` does not allow them. This commit fixes the inconsistent behavior.
* | | Merge pull request #26155 from kamipo/refactor_quoted_columns_for_indexRafael Mendonça França2016-08-162-29/+25
|\ \ \ | | | | | | | | | | | | Refactor `quoted_columns_for_index` by extracted `add_options_for_index_columns`
| * | | Refactor `quoted_columns_for_index` by extracted `add_options_for_index_columns`Ryuta Kamizono2016-08-142-29/+25
| |/ /
* | | Merge pull request #26162 from kamipo/take_respects_dirty_targetRafael França2016-08-162-15/+11
|\ \ \ | | | | | | | | `CollectionProxy#take` should respect dirty target
| * | | `CollectionProxy#take` should respect dirty targetRyuta Kamizono2016-08-142-15/+11
| |/ / | | | | | | | | | | | | `#first`, `#second`, ..., `#last` methods respects dirty target. But `#take` doesn't respect it. This commit fixes the inconsistent behavior.
* | | Merge pull request #26019 from agrobbin/schema-load-unique-column-indicesRafael França2016-08-162-3/+3
|\ \ \ | | | | | | | | Support multiple indexes on the same column when loading the schema
| * | | support multiple indexes on the same column when loading the schemaAlex Robbin2016-08-022-3/+3
| | | |
* | | | Add three new rubocop rulesRafael Mendonça França2016-08-1619-44/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Style/SpaceBeforeBlockBraces Style/SpaceInsideBlockBraces Style/SpaceInsideHashLiteralBraces Fix all violations in the repository.
* | | | Eager autoload ActiveRecord::TableMetadataclaudiob2016-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug that can occur when ActiveJob tries to access ActiveRecord. Specifically, I had an Active Job process fail on Sidekiq with this error: ``` ActiveJob::DeserializationError: Error while trying to deserialize arguments: uninitialized constant ActiveRecord::Core::ClassMethods::TableMetadata Did you mean? ActiveRecord::TableMetadata ``` raised by these lines of code: ``` [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:300 :in `table_metadata` 298 299 def table_metadata # :nodoc: 300 TableMetadata.new(self, arel_table) 301 end 302 end [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:273 :in `predicate_builder` [GEM_ROOT]/gems/activerecord-5.0.0.1/lib/active_record/core.rb:290 :in `relation` ``` The problem seems to be that, inside ActiveRecord::Core, the `TableMetadata` class has not been loaded and, therefore, Rails tries to access the constant `ActiveRecord::Core::ClassMethods::TableMetadata` which does not exist. Eager loading `ActiveRecord::TableMetadata` should fix the issue. @rafaelfranca -- see our Campfire discussion
* | | | Merge pull request #26167 from kamipo/remove_find_nth_with_limit_and_offsetKasper Timm Hansen2016-08-151-34/+13
|\ \ \ \ | | | | | | | | | | Remove `find_nth_with_limit_and_offset` private method
| * | | | Remove `find_nth_with_limit_and_offset` private methodRyuta Kamizono2016-08-151-34/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `find_nth` is protected method, therefore `offset` has not been passed anywhere. `find_nth_with_limit_and_offset` is unnecessary anymore because `offset` has not been passed.
| * | | | Fix `ActiveRecord::FixtureSet` docs [ci skip]Ryuta Kamizono2016-08-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ActiveSupport::TestCase` was replaced `ActiveRecord::TestCase` in #26150. But this docs is for rails apps per se, it should be `ActiveSupport::TestCase`. See https://github.com/rails/rails/pull/26150#discussion_r74710989.
| * | | | Merge pull request #26150 from kamipo/consolidate_ar_test_case_and_as_test_caseSean Griffin2016-08-141-4/+4
| |\ \ \ \ | | | | | | | | | | | | Consolidate `ActiveRecord::TestCase` and `ActiveSupport::TestCase` in AR test cases
| | * | | | Consolidate `ActiveRecord::TestCase` and `ActiveSupport::TestCase` in AR ↵Ryuta Kamizono2016-08-141-4/+4
| | | |/ / | | |/| | | | | | | | | | | | test cases
* | / | | Remove odd ivar from ActiveRecord::LogSubscriberEugene Kenny2016-08-151-5/+0
|/ / / / | | | | | | | | | | | | | | | | This was used to switch the output colour between log lines, but now the output colour is based on the type of statement being logged instead.
* | | | Pass along original attribute to save later recursionAaron Patterson2016-08-141-1/+1
| | | | | | | | | | | | | | | | Fixes #26122
* | | | Merge pull request #26012 from grosser/grosser/missingSean Griffin2016-08-141-1/+1
|\ \ \ \ | |/ / / |/| | | add more array methods to straight delegation to speed up calling them
| * | | add index to array methods so we can call it on relationsMichael Grosser2016-08-121-1/+1
| | | |
* | | | Fix a NoMethodError schema_statements.rbGenadi Samokovarov2016-08-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you call `remove_index` with wrong options, say a type, like I did, you get: ``` == 20160810072541 RemoveUniqueIndexOnGoals: migrating ========================= -- remove_index(:goal, {:coulmn=>:kid_id, :unique=>true}) rails aborted! StandardError: An error has occurred, this and all later migrations canceled: undefined method `ArgumentError' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x007fb7dec91b28> ``` What happened is that I mistyped column (coulmn) and got a `NoMethodError`, because of a missing comma during the raise. This made Ruby think we're calling the method `ArgumentError`.
* | | | Fix broken alignments caused by auto-correct commit 411ccbdRyuta Kamizono2016-08-101-2/+4
| | | | | | | | | | | | | | | | Hash syntax auto-correcting breaks alignments. 411ccbdab2608c62aabdb320d52cb02d446bb39c
* | | | revises more Lint/EndAlignment offensesXavier Noria2016-08-081-3/+3
| | | |
* | | | code gardening: removes redundant selfsXavier Noria2016-08-0813-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few have been left for aesthetic reasons, but have made a pass and removed most of them. Note that if the method `foo` returns an array, `foo << 1` is a regular push, nothing to do with assignments, so no self required.
* | | | revises most Lint/EndAlignment offensesXavier Noria2016-08-077-35/+36
| | | | | | | | | | | | | | | | Some case expressions remain, need to think about those ones.
* | | | Merge pull request #26076 from yui-knk/privatize_expandKasper Timm Hansen2016-08-071-10/+10
|\ \ \ \ | | | | | | | | | | `ActiveRecord::PredicateBuilder#expand` to be private
| * | | | `ActiveRecord::PredicateBuilder#expand` to be privateyui-knk2016-08-071-10/+10
| | | | | | | | | | | | | | | | | | | | This method is not touched from outside.
* | | | | Add `Style/EmptyLines` in `.rubocop.yml` and remove extra empty linesRyuta Kamizono2016-08-076-6/+0
|/ / / /
* | | | Merge pull request #26073 from kamipo/revert_passing_splat_binds_for_arel_nodeSean Griffin2016-08-064-13/+11
|\ \ \ \ | | | | | | | | | | Revert passing arel node with splat binds for `where`
| * | | | Revert passing arel node with splat binds for `where`Ryuta Kamizono2016-08-062-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing arel node with splat binds for `where` was introduced at #22877 for uniqueness validator supports prepared statement. But I'd not like to introduce the following usage: ```ruby Foo.where(arel, *binds) ``` I'd like to revert this internal usage.
| * | | | Don't passing a nil value to `case_sensitive_comparison`Ryuta Kamizono2016-08-063-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | A `value` is only used for checking `value.nil?`. It is unnecessary if immediately return when `value.nil?`.
* | | | | applies remaining conventions across the projectXavier Noria2016-08-0633-148/+116
| | | | |
* | | | | normalizes indentation and whitespace across the projectXavier Noria2016-08-06114-4610/+4609
| | | | |
* | | | | remove redundant curlies from hash argumentsXavier Noria2016-08-061-6/+4
| | | | |
* | | | | modernizes hash syntax in activerecordXavier Noria2016-08-0628-86/+86
| | | | |
* | | | | applies new string literal convention in activerecord/libXavier Noria2016-08-06118-840/+840
| | | | | | | | | | | | | | | | | | | | | | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* | | | | Merge pull request #25998 from kamipo/enum_with_alias_attributeEileen M. Uchitelle2016-08-061-5/+6
|\ \ \ \ \ | |/ / / / |/| | | | Fix `enum` with `alias_attribute`
| * | | | Fix `enum` with `alias_attribute`Ryuta Kamizono2016-07-311-5/+6
| |/ / / | | | | | | | | | | | | Fixes #25892.
* | | | Merge pull request #25665 from kamipo/remove_unused_table_argEileen M. Uchitelle2016-08-051-5/+5
|\ \ \ \ | | | | | | | | | | Remove unused `table` arg for `UniquenessValidator#scope_relation`
| * | | | Remove unused `table` arg for `UniquenessValidator#scope_relation`Ryuta Kamizono2016-07-181-5/+5
| | | | |
* | | | | Merge pull request #26051 from kamipo/make_name_and_binds_to_optional_argsEileen M. Uchitelle2016-08-053-6/+6
|\ \ \ \ \ | | | | | | | | | | | | Make `name` and `binds` to optional args for `exec_{insert,update,delete}`
| * | | | | Make `name` and `binds` to optional args for `exec_{insert,update,delete}`Ryuta Kamizono2016-08-043-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `insert`, `update`, `delete`, and `exec_query` have a default value against `name` and `binds`. But `exec_insert`, `exec_update`, and `exec_delete` not have. It is an inconvenience and inconsistent.