aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG.md
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #13061 from ↵Rafael Mendonça França2013-11-261-0/+6
| | | | | | | | laurocaetano/fix-uniqueness-validation-for-aliased-attribute Fix bug when validating the uniqueness of an aliased attribute. Conflicts: activerecord/CHANGELOG.md
* changed update counter to act on unscoped modelheruku2013-11-261-0/+6
|
* `rename_index`: add the new index before removing the old one.Yves Senn2013-11-261-0/+8
| | | | | | | | | | | This prevents the following error when a MySQL index on a foreign key column is renamed: ``` ActiveRecord::StatementInvalid: Mysql2::Error: Cannot drop index 'index_engines_on_car_id': needed in a foreign key constraint: DROP INDEX `index_engines_on_car_id` ON `engines` ``` refs: #13038.
* move changelog entry to the topBrian Thomas Storti2013-11-251-6/+6
|
* Raise `RecordNotDestroyed` when children can't be replacedBrian Thomas Storti2013-11-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #12812 Raise `ActiveRecord::RecordNotDestroyed` when a child marked with `dependent: destroy` can't be destroyed. The following code: ```ruby class Post < ActiveRecord::Base has_many :comments, dependent: :destroy end class Comment < ActiveRecord::Base before_destroy do return false end end post = Post.create!(comments: [Comment.create!]) post.comments = [Comment.create!] ```` would result in a `post` with two `comments`. With this commit, the same code would raise a `RecordNotDestroyed` exception, keeping the `post` with the same `comment`.
* Fix some minor typos [ci skip]Vipul A M2013-11-261-1/+1
|
* Fix validation on uniqueness of empty associationEvgeny Li2013-11-221-0/+4
|
* Improve changelogsCarlos Antonio da Silva2013-11-221-2/+1
| | | | | Also make Action Mailer changelog format more consistent with the others [ci skip]
* Fix ActiveRecord::Relation#unscopeJon Leighton2013-11-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm pretty confused about the addition of this method. The documentation says that it was intended to allow the removal of values from the default scope (in contrast to #except). However it behaves exactly the same as except: https://gist.github.com/jonleighton/7537008 (other than having a slightly enhanced syntax). The removal of the default scope is allowed by 94924dc32baf78f13e289172534c2e71c9c8cade, which was not a change we could make until 4.1 due to the need to deprecate things. However after that change #unscope still gives us nothing that #except doesn't already give us. However there *is* a desire to be able to unscope stuff in a way that persists across merges, which would allow associations to be defined which unscope stuff from the default scope of the associated model. E.g. has_many :comments, -> { unscope where: :trashed } So that's what this change implements. I've also corrected the documentation. I removed the guide references to #except as I think unscope really supercedes #except now. While we're here, there's also a potential desire to be able to write this: has_many :comments, -> { unscoped } However, it doesn't make sense and would not be straightforward to implement. While with #unscope we're specifying exactly what we want to be removed from the relation, with "unscoped" we're just saying that we want it to not have some things which were added earlier on by the default scope. However in the case of an association, we surely don't want *all* conditions to be removed, otherwise the above would just become "SELECT * FROM comments" with no foreign key constraint. To make the above work, we'd have to somehow tag the relation values which get added when evaluating the default scope in order to differentiate them from other relation values. Which is way too much complexity and therefore not worth it when most use cases can be satisfied with unscope. Closes #10643, #11061.
* use arel nodes to represent non-string `order_values`.Yves Senn2013-11-191-0/+4
| | | | | | | | | | | | | | | | | | | This fixes a bug when merging relations of different classes. ``` Given: Post.joins(:author).merge(Author.order(name: :desc)).to_sql Before: SELECT "posts".* FROM "posts" INNER JOIN "authors" ON "authors"."id" = "posts"."author_id" ORDER BY "posts"."name" DESC After: SELECT "posts".* FROM "posts" INNER JOIN "authors" ON "authors"."id" = "posts"."author_id" ORDER BY "authors"."name" DESC ```
* Revert "Explicitly exit with status "1" for create and drop failures"Rafael Mendonça França2013-11-191-4/+0
| | | | | | | | | | This reverts commit 22f80ae57b26907f662b7fd50a7270a6381e527e. See https://github.com/rails/rails/commit/22f80ae57b26907f662b7fd50a7270a6381e527e#commitcomment-4640676 Conflicts: activerecord/CHANGELOG.md
* Merge pull request #12918 from versioncontrol/rails-12866Rafael Mendonça França2013-11-161-0/+4
|\ | | | | | | | | | | | | Checks to see if the record contains the foreign_key to set the inverse automatically Conflicts: activerecord/CHANGELOG.md
| * Checks to see if the record contains the foreign_key to set the inverse ↵Edo Balvers2013-11-161-0/+4
| | | | | | | | automatically
* | Merge pull request #12531 from iamvery/database-tasks-exit-statusRafael Mendonça França2013-11-151-0/+4
|\ \ | | | | | | | | | | | | | | | | | | Explicitly exit with status "1" for create and drop task failures Conflicts: activerecord/CHANGELOG.md
| * | Explicitly exit with status "1" for create and drop failuresJay Hayes2013-11-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * A non-zero exit status allows subsequent shell commands to be chained together such as: `rake db:reset test:prepare && rspec && cap deploy` (if you're feeling brave :) * Any exceptions raised during the `create` and `drop` tasks are caught in order to print a "pretty" message to the user. Unfortunately doing so prevents rake from aborting with a non-zero exit status to the shell. * Therefore we re-raise the exceptions after the "pretty" message and re-catch them in the task. * From the task we explicitly exit with a non-zero status. This method was chosen (rather than just letting rake fail from the exception) so that the backtrace is suppressed and the output to stderr is unchanged. * Update activerecord CHANGELOG
* | | Fix AR Changelog examples and improve syntax highlight [ci skip]Carlos Antonio da Silva2013-11-141-12/+12
| | |
* | | Add AR::Base.to_param for convenient "pretty" URLs derived from a model's ↵Javan Makhmali2013-11-141-0/+14
| | | | | | | | | | | | attribute or method.
* | | add #no_touching on ActiveRecord modelsDamien Mathieu2013-11-131-0/+10
| | |
* | | Prevent the counter cache from being decremented twicedm1try2013-11-111-0/+7
| | | | | | | | | | | | | | | when destroying a record on a has_many :through association. :destroy method has own counter_cache callbacks.
* | | Unifies mysql and mysql2 casting of booleans.Yves Senn2013-11-111-0/+7
| | |
* | | tidy Active Record CHANGELOG. [ci skip].Yves Senn2013-11-111-1/+3
| | |
* | | Fixes problem with replacing has_one association record with itselfDenis Redozubov2013-11-111-0/+6
| | |
* | | Improve changelogs formatting [ci skip]Carlos Antonio da Silva2013-11-091-8/+8
| | |
* | | log bind variables after they were type casted.Yves Senn2013-11-091-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The log output used to be confusing in situation where type casting has "unexpected" effects. For example when finding records with a `String`. BEFORE: irb(main):002:0> Event.find("im-no-integer") D, [2013-11-09T11:10:28.998857 #1706] DEBUG -- : Event Load (4.5ms) SELECT "events".* FROM "events" WHERE "events"."id" = $1 LIMIT 1 [["id", "im-no-integer"]] AFTER: irb(main):002:0> Event.find("im-no-integer") D, [2013-11-09T11:10:28.998857 #1706] DEBUG -- : Event Load (4.5ms) SELECT "events".* FROM "events" WHERE "events"."id" = $1 LIMIT 1 [["id", 0]]
* | | revised changelog comment to be less than 80 charsJason Ayre2013-11-071-2/+2
| | |
* | | add autoload :TransactionState to fix Marshal.load issuesJason Ayre2013-11-071-0/+5
| |/ |/|
* | Fix changelog indent [ci skip]Carlos Antonio da Silva2013-11-041-6/+6
| |
* | Revert "ActiveRecord::Base#<=> has been removed. Primary keys may not be in ↵David Heinemeier Hansson2013-11-021-12/+0
| | | | | | | | | | | | | | | | | | order," -- will be replaced with a check to ensure that the keys used for comparison are integers, and only fail if they are not. This reverts commit 6256734e2d0bdd89f4b5d11da259d40afa0c95c7. Conflicts: activerecord/CHANGELOG.md
* | Added ActiveRecord::QueryMethods#rewhere which will overwrite an existing, ↵David Heinemeier Hansson2013-11-021-0/+10
| | | | | | | | named where condition.
* | unscope now works on default_scope after ↵Rafael Mendonça França2013-11-021-5/+8
| | | | | | | | 94924dc32baf78f13e289172534c2e71c9c8cade
* | Extend ActiveRecord::Base#cache_key to take an optional list of timestamp ↵David Heinemeier Hansson2013-11-021-0/+10
| | | | | | | | attributes of which the highest will be used.
* | Fix to work on Ruby 1.9.3, example and changelog improvementsCarlos Antonio da Silva2013-11-021-24/+24
| |
* | Added ActiveRecord::Base#enum for declaring enum attributes where the values ↵David Heinemeier Hansson2013-11-021-0/+25
| | | | | | | | map to integers in the database, but can be queried by name
* | Fix wrong behavior where associations with dependent: :destroy optionsRafael Mendonça França2013-11-011-2/+2
| | | | | | | | | | | | | | | | | | was using nullify strategy This caused a regression in applications trying to upgrade. Also if the user set the dependent option as destroy he expects to get the records removed from the database.
* | no need for a CHANGELOG entry. [ci skip].Yves Senn2013-10-301-7/+1
| |
* | fix code typo in `MysqlAdapter` .Closes #12647.Yves Senn2013-10-301-0/+6
| |
* | short arrays in inspectJan Bernacki2013-10-301-0/+4
| |
* | Fix typoDavid Heinemeier Hansson2013-10-271-1/+1
| |
* | Merge pull request #12578 from ↵Rafael Mendonça França2013-10-271-0/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | jeradphelps/configurable_schema_migrations_table_name Configurable name for schema_migrations table Conflicts: activerecord/CHANGELOG.md
| * | added schema_migrations_table_name to ActiveRecord::Base in order that the ↵Jerad Phelps2013-10-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | name of the schema migrations table can be configured. consolidated test_schema_migrations_table_name tests Added changelog entry edited changelog removed commented lines removed reader ensure the schema migrations table is reset at end of test added entry to configuration guide guides typo and changelog order
* | | Skip `include_values` from through associations chains for building target scopePaul Nikitochkin2013-10-271-0/+24
| | | | | | | | | | | | Fixes: #12242, #9517, #10240
* | | cast json values on write to be consistent with reading from the db.Severin Schoepke2013-10-251-0/+15
| | | | | | | | | | | | See also commit 5ac2341fab689344991b2a4817bd2bc8b3edac9d
* | | `ActiveRecord::Store` works together with PG `hstore` columns.Yves Senn2013-10-251-0/+5
| | | | | | | | | | | | | | | | | | This is necessary because as of 5ac2341 `hstore` columns are always stored as `Hash` with `String` keys. `ActiveRecord::Store` expected the attribute to be an instance of `HashWithIndifferentAccess`, which led to the bug.
* | | `stored_attributes` need to be specific to a subclass.Yves Senn2013-10-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently they are all stored globally in the same `Hash`. This commit forces the creation of a per-class variable if necessary. The behavior was exposed through the following test-case: ``` 1) Failure: StoreTest#test_all_stored_attributes_are_returned [/Users/senny/Projects/rails/activerecord/test/cases/store_test.rb:151]: --- expected +++ actual @@ -1 +1 @@ -[:color, :homepage, :favorite_food] +[:resolution, :color, :homepage, :favorite_food] ```
* | | Merge pull request #12621 from ↵Rafael Mendonça França2013-10-241-0/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | laurocaetano/fix_has_one_association_with_primary_key_set Save association when primary key is manually set Conflicts: activerecord/CHANGELOG.md
| * | | Save association when primary key is manually setlaurocaetano2013-10-241-0/+6
| | | |
* | | | Add CHANGELOG entry for #12635 [ci skip]Rafael Mendonça França2013-10-241-0/+4
| | | |
* | | | minor Active Record CHANGELOG cleanup. [ci skip].Yves Senn2013-10-221-3/+3
| | | |
* | | | Merge pull request #12588 from jetthoughts/12586_subquery_with_unprepared_sqlRafael Mendonça França2013-10-211-2/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inline bind values for sub-queries generated for Relation in where Conflicts: activerecord/CHANGELOG.md
| * | | | Process sub-query relation's binding valuesPaul Nikitochkin2013-10-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generated sub-query for Relation as array condition for `where` method did not take in account its bind values, in result generates invalid SQL query. Fixed by adding sub-query relation's binding values to base relation Closes: #12586