aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/CHANGELOG.md
Commit message (Collapse)AuthorAgeFilesLines
...
* | Getting rid of the +automatic_inverse_of: false+ option in associations in favorwangjohn2013-06-081-0/+21
| | | | | | | | | | of using +inverse_of: false+ option. Changing the documentation and adding a CHANGELOG entry for the automatic inverse detection feature.
* | Fixes #10432 add_column not creating array columns in PostgreSQLAdam Anderson2013-06-041-0/+4
| | | | | | | | | | | | When then PostgreSQL visitor was [added](https://github.com/rails/rails/commit/6b7fdf3bf3675a14eae74acc5241089308153a34) `add_column` was no longer receiving the column options directly. This caused the options to be lost along the way.
* | `implicit_readonly` is being removed in favor of calling `readonly` explicitlyYves Senn2013-05-271-0/+12
| |
* | Fix the `:primary_key` option for `has_many` associations.Yves Senn2013-05-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When removing records from a `has_many` association it used the `primary_key` defined on the association. Our test suite didn't fail because on all occurences of `:primary_key`, the specified column was available in both tables. This prevented the code from raising an exception but it still behaved badly. I added a test-case to prevent regressions that failed with: ``` 1) Error: HasManyAssociationsTest#test_has_many_assignment_with_custom_primary_key: ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: essays.first_name: UPDATE "essays" SET "writer_id" = NULL WHERE "essays"."writer_id" = ? AND "essays"."first_name" IS NULL ```
* | Add CHANGELOG entry for 99860582b2b1c0fc42bf84c52aac57b243d42678Rafael Mendonça França2013-05-221-0/+6
|/
* Fxied some typosPrathamesh Sonpatki2013-05-181-1/+1
|
* Also support extensions in PostgreSQL 9.1, because this has been supported ↵kennyj2013-05-151-0/+4
| | | | since 9.1.
* Merge pull request #10556 from Empact/deprecate-schema-statements-distinctRafael Mendonça França2013-05-121-0/+5
| | | | | | Deprecate SchemaStatements#distinct, and make SchemaStatements#columns_for_distinct nodoc. Conflicts: activerecord/CHANGELOG.md
* Improve CHANGELOG entry [ci kip]Rafael Mendonça França2013-05-111-6/+10
|
* Call assume_migrated_upto_version on connectionKyle Stevens2013-05-111-0/+11
| | | | | | | | | | | Call assume_migrated_upto_version on connection to prevent it from first being picked up in method_missing. In the base class, Migration, method_missing expects the argument to be a table name, and calls proper_table_name on the arguments before sending to connection. If table_name_prefix or table_name_suffix is used, the schema version changes to prefix_version_suffix, breaking `rake test:prepare`. Fixes #10411.
* read_attribute_before_type_cast should accept symbolNeeraj Singh2013-05-111-0/+4
|
* Fix Typo existant -> existent [ci skip]Prathamesh Sonpatki2013-05-081-1/+1
|
* Improve CHANGELOG entry [ci skip]Rafael Mendonça França2013-05-061-4/+4
|
* Merge pull request #10489 from greenriver/ar_counter_cache_multiple_destroyRafael Mendonça França2013-05-061-1/+5
|\ | | | | | | | | | | | | Confirm a record has not already been destroyed before decrementing counter cache Conflicts: activerecord/CHANGELOG.md
| * Confirm a record has not already been destroyed before decrementingBen Tucker2013-05-061-0/+4
| | | | | | | | | | | | | | | | | | counter cache At present, calling destroy multiple times on the same record results in the belongs_to counter cache being decremented multiple times. With this change the record is checked for whether it is already destroyed prior to decrementing the counter cache.
* | Fix bug in ActiveRecord::Sanitization#sanitize_sql_hash_for_conditionsZach Ohlgren2013-05-061-3/+10
| | | | | | | | | | | | | | | | Fixing CHANGLOG description Remove extra line. Remove blank lines.
* | raise IrreversibleMigration if no column givenNeeraj Singh2013-05-061-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #10419 Following code should raise IrreversibleMigration. But the code was failing since options is an array and not a hash. def change change_table :users do |t| t.remove_index [:name, :email] end end Fix was to check if the options is a Hash before operating on it.
* | Do not overwrite manually built records during one-to-one nested attribute ↵Olek Janiszewski2013-05-031-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assignment For one-to-one nested associations, if you build the new (in-memory) child object yourself before assignment, then the NestedAttributes module will not overwrite it, e.g.: class Member < ActiveRecord::Base has_one :avatar accepts_nested_attributes_for :avatar def avatar super || build_avatar(width: 200) end end member = Member.new member.avatar_attributes = {icon: 'sad'} member.avatar.width # => 200
* | Merge pull request #10417 from jholton/fix_association_auto_saveJon Leighton2013-05-031-0/+7
|\ \ | | | | | | autosave_association issue that occurs when table has unique index (resubmission)
| * | destroys association records before saving/inserting new association recordsJohnny Holton2013-05-021-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes bug introduced by #3329 These are the conditions necessary to reproduce the bug: - For an association, autosave => true. - An association record is being destroyed - A new association record is being created. - There is a unique index one of the association's fields. - The record being created has the same value as the record being destroyed on the indexed field. Before, the deletion of records was postponed until after all insertions/saves. Therefore the new record with the identical value in the indexed field caused a non-unique value error to be thrown at the database level. With this fix, the deletions happen first, before the insertions/saves. Therefore the record with the duplicate value is gone from the database before the new record is created, thereby avoiding the non-uniuqe value error.
* | | rake:db:test:prepare falls back to original environment after execution.markevich2013-05-021-0/+4
|/ /
* / Handle aliased attributes in ActiveRecord::Relation.Godfrey Chan2013-05-011-0/+24
|/ | | | | | | | | | | | | | | | | | | | | | | | | | When using symbol keys, ActiveRecord will now translate aliased attribute names to the actual column name used in the database: With the model class Topic alias_attribute :heading, :title end The call Topic.where(heading: 'The First Topic') should yield the same result as Topic.where(title: 'The First Topic') This also applies to ActiveRecord::Relation::Calculations calls such as `Model.sum(:aliased)` and `Model.pluck(:aliased)`. This will not work with SQL fragment strings like `Model.sum('DISTINCT aliased')`. Github #7839 *Godfrey Chan*
* Mute psql output when running rake db:schema:loadGodfrey Chan2013-04-301-0/+4
|
* Fix #8856 Ensure has_one association=(associate) triggers save.Chris Thompson2013-04-301-0/+6
| | | | | | | | | | | | | | | | | | | | | | | activerecord/lib/active_record/associations.rb states: # [association=(associate)] # Assigns the associate object, extracts the primary key, sets it as the foreign key, # and saves the associate object. Since commit 42dd5d9f2976677a4bf22347f2dde1a8135dfbb4 to fix #7191, this is no longer the case if the associate has changed, but is the same object. For example: # Pirate has_one :ship pirate = Pirate.create!(catchphrase: "A Pirate") ship = pirate.build_ship(name: 'old name') ship.save! ship.name = 'new name' pirate.ship = ship That last line should trigger a save. Although we are not changing the association, the associate (ship) has changed.
* Abort a rake task when missing db/structure.sql like `db:schema:load` task.kennyj2013-05-011-1/+3
|
* rails/master is now 4.1.0.betaRafael Mendonça França2013-04-291-2043/+2
|
* Minor AR changelog review [ci skip]Carlos Antonio da Silva2013-04-241-6/+8
|
* Merge branch 'active-record-standalone-improvements'Piotr Sarnacki2013-04-241-0/+2
|\
| * Move CHANGELOG entry for db.rake improvements to 4.0.0Piotr Sarnacki2013-04-241-3/+1
| |
| * Don't require having Rails.application to run database tasksPiotr Sarnacki2013-04-241-0/+4
| |
* | Added testcase for #10067 and a CHANGELOG entry about this change.kennyj2013-04-251-0/+7
| |
* | Revert "Revert "`belongs_to :touch` behavior now touches old association ↵Andrew White2013-04-241-0/+20
|/ | | | | | | | | when transitioning to new association" until a proper fix is found for #10197" This reverts commit 7389df139a35436f00876c96d20e81ba23c93f0a. Conflicts: activerecord/test/cases/timestamp_test.rb
* Revert "`belongs_to :touch` behavior now touches old association when ↵David Heinemeier Hansson2013-04-231-20/+0
| | | | transitioning to new association" until a proper fix is found for #10197
* Update counter cache when pushing into associationMatthew Robertson2013-04-211-0/+9
| | | | | | | | | | | | | | | | This commit fixes a regression bug in which counter_cache columns were not being updated correctly when newly created records were being pushed into an assocation. EG: # this was fine @post.comment.create! # this was fine @comment = Comment.first @post.comments << @comment # this would not update counters @post.comments << Comment.create!
* Rewrites a CHANGELOG entry.Xavier Noria2013-04-201-16/+6
| | | | | | | | | | | | | | | | | The entry is basically copy & paste of the commit message, but the CHANGELOG has a different purpose than Git history, it just communicates what is new: * No need to explain why did the bug happen (unless it is truly relevant). * No need to explain how was the bug fixed. * Whether the user gives new names to columns does not really matter, use of select to cherry-pick a column for example also presented that behaviour. Non-selected attributes are the key, either because they were not included in the selected list, or because they were but with a different alias. * In the case of an attribute alias, what you really want to depict is that respond_to? returns false for the original attribute name.
* Typo Fix in AR CHANGELOG [ci skip]Prathamesh Sonpatki2013-04-201-2/+2
|
* fix respond_to? for non selected columnNeeraj Singh2013-04-191-0/+23
| | | | | | | | | | | | | | | | | | | | | | | fixes #4208 If a query selects only a few columns and gives custom names to those columns then respond_to? was returning true for the non selected columns. However calling those non selected columns raises exception. post = Post.select("'title' as post_title").first In the above case when `post.body` is invoked then an exception is raised since `body` attribute is not selected. Howevere `respond_to?` did not behave correctly. pos.respond_to?(:body) #=> true Reason was that Active Record calls `super` to pass the call to Active Model and all the columns are defined on Active Model. Fix is to actually check if the data returned from the db contains the data for column in question.
* Revert "Merge pull request #10183 from jholton/fix_association_auto_save"Jon Leighton2013-04-191-7/+0
| | | | | | | This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing changes made to d098e1c24bc145e0cc14532348436e14dc46d375. Reason: it broke the mysql build
* destroys association records before saving/inserting new association recordsJohnny Holton2013-04-191-0/+7
| | | | | | | | | | | | | | | | | | | | | fixes bug introduced by #3329 These are the conditions necessary to reproduce the bug: - For an association, autosave => true. - An association record is being destroyed - A new association record is being created. - There is a unique index one of the association's fields. - The record being created has the same value as the record being destroyed on the indexed field. Before, the deletion of records was postponed until after all insertions/saves. Therefore the new record with the identical value in the indexed field caused a non-unique value error to be thrown at the database level. With this fix, the deletions happen first, before the insertions/saves. Therefore the record with the duplicate value is gone from the database before the new record is created, thereby avoiding the non-uniuqe value error.
* Merge pull request #10217 from mirasrael/make-migrator-run-transactional-4.0Rafael Mendonça França2013-04-191-0/+4
|\ | | | | | | | | | | | | Support transactions in Migrator.run Conflicts: activerecord/CHANGELOG.md
| * Support transactions in Migrator.runbondarev2013-04-181-0/+4
| |
* | Fix #7619. 0x prefix must be added when assigning hexadecimal string into ↵kennyj2013-04-171-0/+4
| | | | | | | | bit column in Postgresql, because solving ambiguity.
* | Fixed typos in AR CHANGELOGPrathamesh Sonpatki2013-04-161-4/+4
|/
* use unified and clean formatting in CHANGELOGS. [ci skip]Yves Senn2013-04-121-9/+9
|
* Switched to new naming conventionsNoemj2013-04-111-3/+3
| | | | [ci skip]
* Merge pull request #10152 from Noemj/statement_cacheRafael Mendonça França2013-04-101-0/+17
|\ | | | | | | | | | | | | Statement cache Conflicts: activerecord/CHANGELOG.md
| * Added statement cacheNoemj2013-04-101-0/+17
| |
* | While merging relations preserve context for joinsJared Armstrong and Neeraj Singh2013-04-101-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #3002. Also see #5494. ``` class Comment < ActiveRecord::Base belongs_to :post end class Author < ActiveRecord::Base has_many :posts end class Post < ActiveRecord::Base belongs_to :author has_many :comments end ``` `Comment.joins(:post).merge(Post.joins(:author).merge(Author.where(:name => "Joe Blogs"))).all` would fail with `ActiveRecord::ConfigurationError: Association named 'author' was not found on Comment`. It is failing because `all` is being called on relation which looks like this after all the merging: `{:joins=>[:post, :author], :where=>[#<Arel::Nodes::Equality: ....}`. In this relation all the context that `Post` was joined with `Author` is lost and hence the error that `author` was not found on `Comment`. Ths solution is to build JoinAssociation when two relations with join information are being merged. And later while building the arel use the previously built `JoinAssociation` record in `JoinDependency#graft` to build the right from clause. Thanks to Jared Armstrong (https://github.com/armstrjare) for most of the work. I ported it to make it compatible with new code base.
* | Minor AR changelog improvements [ci skip]Carlos Antonio da Silva2013-04-071-4/+3
| |
* | Deprecate ActiveRecord#Base.default_scopes?Agis-2013-04-061-0/+5
| | | | | | | | See #10107.