aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* Fix value extracted from negative integers for PostgreSQL.Guo Xiang Tan2014-12-011-1/+1
| | | | Fixes: https://github.com/rails/rails/issues/17856.
* Ensure numericality validations work with mutationSean Griffin2014-12-011-6/+6
| | | | | | | | | | | | | | | | | | | | | The detection of in-place changes caused a weird unexpected issue with numericality validations. That validator (out of necessity) works on the `_before_type_cast` version of the attribute, since on an `:integer` type column, a non-numeric string would type cast to 0. However, strings are mutable, and we changed strings to ensure that the post type cast version of the attribute was a different instance than the before type cast version (so the mutation detection can work properly). Even though strings are the only mutable type for which a numericality validation makes sense, special casing strings would feel like a strange change to make here. Instead, we can make the assumption that for all mutable types, we should work on the post-type-cast version of the attribute, since all cases which would return 0 for non-numeric strings are immutable. Fixes #17852
* Fix grammar on ActiveRecord::AttributeMethods doc.Hendy Tanata2014-11-301-1/+1
| | | | [ci skip]
* Update Arel usage for rails/arel#98fc259Sean Griffin2014-11-294-8/+8
| | | | | `where_sql` now requires that we pass it an engine. None of the manager classes take an engine in their constructor.
* Stop using `Arel::Table.engine`Sean Griffin2014-11-294-5/+5
| | | | | | | | | | | | | We never actually make use of it on the table, since we're constructing the select manager manually. It looks like if we ever actually were grabbing it from the table, we're grossly misusing it since it's meant to vary by AR class. Its existence on `Arel::Table` appears to be purely for convenience methods that are never used outside of tests. However, in production code it just complicates construction of the tables on the rails side, and the plan is to remove it from `Arel::Table` entirely. I'm not convinced it needs to live on `SelectManager`, etc either.
* Pass symbol as an argument instead of a blockErik Michaels-Ober2014-11-2925-49/+41
|
* Merge pull request #17799 from kamipo/refactor_add_column_optionsRafael Mendonça França2014-11-282-6/+14
|\ | | | | Refactor `add_column_options!`, to move the quoting of default value for :uuid in `quote_value`.
| * Rename to `quote_default_expression` from `quote_value`Ryuta Kamizono2014-11-282-3/+3
| |
| * Refactor `add_column_options!`, to move the quoting of default value for ↵Ryuta Kamizono2014-11-281-4/+12
| | | | | | | | :uuid in `quote_value`.
* | Start Rails 5 development :tada:Rafael Mendonça França2014-11-281-3/+3
| | | | | | | | | | | | | | We will support only Ruby >= 2.1. But right now we don't accept pull requests with syntax changes to drop support to Ruby 1.9.
* | Adds preloaded_records method to NullPreloaderThorsten Ball2014-11-281-0/+1
| | | | | | | | | | | | | | | | This fixes a regression where preloading association throws an exception if one of the associations in the preloading hash doesn't exist for one record. Fixes #16070
* | Merge pull request #17808 from ↵Rafael Mendonça França2014-11-282-3/+3
|\ \ | | | | | | | | | | | | yuki24/fix-bug-where-record-not-saved-loses-error-message Fixed a bug where AR::RecordNotSaved loses the given error message
| * | Fix a bug where AR::RecordNotSaved loses error messagesYuki Nishijima2014-11-272-3/+3
| |/ | | | | | | | | | | Since 3e30c5d, it started ignoring the given error message. This commit changes the behavior of AR::RecordNotSaved#initialize so that it no longer loses the given error message.
* | Merge pull request #17798 from kamipo/refactor_visit_add_columnYves Senn2014-11-282-9/+1
|\ \ | |/ |/| Refactor `SchemaCreation#visit_AddColumn`
| * Refactor `SchemaCreation#visit_AddColumn`Ryuta Kamizono2014-11-272-9/+1
| |
* | Update the StatementCache documentationRafael Mendonça França2014-11-271-4/+15
| |
* | StatementCache is private APIRafael Mendonça França2014-11-271-6/+6
|/ | | | It should not be used in applications
* various error classes: added newlines & removed :nodoc: flag from public ↵Recursive Madman2014-11-262-3/+6
| | | | attribute.
* Merge pull request #17674 from recursive-madman/activerecord-error-improvementRafael Mendonça França2014-11-262-2/+21
|\ | | | | Add #record attribute to RecordNotFound and RecordDestroyed exceptions.
| * Add #record attribute to RecordNotFound and RecordDestroyed exceptions.Recursive Madman2014-11-262-2/+21
| | | | | | | | This allows these exceptions to be handled generically in conjunction with RecordInvalid.
* | Merge pull request #17697 from sgrif/sg-remove-is-a-check-when-ignoring-tablesSean Griffin2014-11-251-6/+1
|\ \ | | | | | | Remove is_a? check when ignoring tables
| * | Remove is_a? check when ignoring tablesSean Griffin2014-11-201-6/+1
| | | | | | | | | | | | | | | Technically changes the API, as it will allow any object which responds to `===`. Personally, I think this is more flexible.
* | | Move PG float quoting to the correct locationSean Griffin2014-11-251-16/+6
| | | | | | | | | | | | | | | Not sure how we missed this case when we moved everything else to the `_quote` method.
* | | Merge pull request #17739 from rails/bring_back_db_test_prepareYves Senn2014-11-253-8/+13
|\ \ \ | | | | | | | | bring back `db:test:prepare`.
| * | | bring back `db:test:prepare`.Yves Senn2014-11-252-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts deprecations added in #13528. The task is brought back for two reasons: 1. Give plugins a way to hook into the test database initialization process 2. Give the user a way to force a test database synchronization While `test:prepare` is still a dependency of every test task, `db:test:prepare` no longer hooks into it. This means that `test:prepare` runs before the schema is synchronized. Plugins, which insert data can now hook into `db:test:prepare`. The automatic schema maintenance can't detect when a migration is rolled-back, modified and reapplied. In this case the user has to fall back to `db:test:prepare` to force the synchronization to happen.
| * | | do not trigger AR lazy load hook before initializers ran.Yves Senn2014-11-251-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Rafael Mendonça França & Yves Senn] This require caused the `active_record.set_configs` initializer to run immediately, before `config/initializers`. This means that setting any configuration on `Rails.application.config.active_record` inside of an initializer had no effects when rails was loaded through `rake`. Introduced by #6518 /cc @rafaelfranca
* | | | Setting an association replaces records with the same id in memorySean Griffin2014-11-251-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The records weren't being replaced since equality in Active Record is defined in terms of `id` only. It is reasonable to expect that the references would be replaced in memory, even if no queries are actually executed. This change did not appear to affect any other parts of the code base. I chose not to execute callbacks since we're not actually modifying the association in a way that will be persisted. Fixes #17730
* | | | Merge pull request #17754 from eileencodes/refactor-aliased_table_forSantiago Pastorino2014-11-252-13/+4
|\ \ \ \ | |/ / / |/| | | Combine aliased_table_for and aliased_name_for
| * | | Combine aliased_table_for and aliased_name_foreileencodes2014-11-242-13/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This refactoring reduces the number of conditionals needed to build `aliased_table_for` and removes `aliased_name_for` because it's no longer necessary. `aliased_name_for` was also used in `JoinDependency#initialize` so that was replaced with `aliased_table_for` as well.
* | | | Fix out of range error messageRyuta Kamizono2014-11-251-1/+1
|/ / /
* | | allow types to be passed in for USING castsAaron Patterson2014-11-241-0/+3
| | | | | | | | | | | | | | | | | | | | | This allows us so abstract the migration from the type that is actually used by Rails. For example, ":string" may be a varchar or something, but the framework does that translation, and the app shouldn't need to know.
* | | allow the "USING" statement to be specified on change column callsAaron Patterson2014-11-241-1/+3
| | |
* | | Merge pull request #17682 from ReneB/docs/update_allRafael Mendonça França2014-11-241-5/+5
|\ \ \ | | | | | | | | Explain that default_scope also influences update_all
| * | | Reword documentation for update_allRené van den Berg2014-11-241-8/+1
| | | | | | | | | | | | It now contains a carefully formulated reference to the "current relation" which might help clarify that the receiving will generate its own scope, escaping the need for explicitly referencing `default_scope` which is, after all, just another way of specifying a scope and nothing special.
| * | | Explain that default_scope also influences update_allRené van den Berg2014-11-201-5/+12
| | | | | | | | | | | | | | | | | | | | This was not explicitly stated before and I needed to try it out to be certain. A little explicit statement in the API docs might help here.
* | | | Mark comments that should not be in the docsclaudiob2014-11-244-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some comments that are meant to separate blocks of code in a file show up on http://api.rubyonrails.org as though they were part of the documentation. This commit hides those comments from the documentation. Stems from the discussion with @zzak at https://github.com/voloko/sdoc/issues/79#issuecomment-64158738 [ci skip]
* | | | Ensure the type map's cache is thread safeSean Griffin2014-11-241-3/+7
| | | | | | | | | | | | | | | | | | | | Thanks to @thedarkone for pointing out that an instance of this object is used in a shared context.
* | | | Merge pull request #17678 from siddharth28/includes_with_scope_with_joinsSantiago Pastorino2014-11-242-12/+4
|\ \ \ \ | | | | | | | | | | Fix includes on association with a scope
| * | | | Fix includes on association with a scope containing joins along with conditionssiddharth@vinsol.com2014-11-212-12/+4
| | | | | | | | | | | | | | | | | | | | on the joined assoiciation
* | | | | cleanup, remove trailing whitespace [ci skip]Yves Senn2014-11-241-2/+2
| | | | |
* | | | | Update reflections public API docArthur Neves2014-11-221-1/+1
| | | | |
* | | | | Fix build failuresSean Griffin2014-11-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason changing `.find` to `.unscoped.find` in https://github.com/rails/rails/commit/f766abd4cf3eb75469d3646cfb6d85e668c619f3 caused `scoping` to leak in some tests when run in isolation (looks like a concurrency issue?). `relation_scoping_test.rb` is a case that failed. From what I can tell it should not be possible, but changing to the block form fixes it. There is a deeper issue that I can't seem to find. /cc @senny
* | | | | Rename the primary key index when renaming a table in pgSean Griffin2014-11-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also checked to make sure this does not affect foreign key constraints. (It doesn't). Fixes #12856 Closes #14088
* | | | | ConnectionAdapter#substitute_at is technically public API...Sean Griffin2014-11-211-1/+1
|/ / / / | | | | | | | | | | | | We can't change the signature without a deprecation cycle.
* | | | make it possible to access fixtures excluded by a `default_scope`.Yves Senn2014-11-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this patch you'd end up with an error like: ``` ActiveRecord::RecordNotFound: Couldn't find <Model> with 'id'=<id> [WHERE (<default_scope condition>)] ```
* | | | Merge pull request #17695 from claudiob/replace-all-backticks-with-plusesYves Senn2014-11-214-6/+6
|\ \ \ \ | | | | | | | | | | Wrap code snippets in +, not backticks, in sdoc [ci skip]
| * | | | Wrap code snippets in +, not backticks, in sdocclaudiob2014-11-204-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I grepped the source code for code snippets wrapped in backticks in the comments and replaced the backticks with plus signs so they are correctly displayed in the Rails documentation. [ci skip]
* | | | | raise a better exception for renaming long indexesAaron Patterson2014-11-202-0/+6
|/ / / /
* | | | Merge pull request #17669 from SamSaffron/optimise_memorySean Griffin2014-11-201-1/+6
|\ \ \ \ | | | | | | | | | | PERF: avoid string allocations
| * | | | PERF: avoid string allocationsSam2014-11-201-1/+6
| | | | |