Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reuse the Column integer converter | Rafael Mendonça França | 2013-01-03 | 1 | -1/+1 |
| | |||||
* | Fix undefined method `to_i' introduced since 3.2.8 | Jason Stirk | 2013-01-04 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes a bug introduced in 96a13fc7 which breaks behaviour of integer fields. In 3.2.8, setting the value of an integer field to a non-integer (eg. Array, Hash, etc.) would default to 1 (true) : # 3.2.8 p = Post.new p.category_id = [ 1, 2 ] p.category_id # => 1 p.category_id = { 3 => 4 } p.category_id # => 1 In 3.2.9 and above, this will raise a NoMethodError : # 3.2.9 p = Post.new p.category_id = [ 1, 2 ] NoMethodError: undefined method `to_i' for [1, 2]:Array Whilst at first blush this appear to be sensible, it combines in bad ways with scoping. For example, it is common to use scopes to control access to data : @collection = Posts.where(:category_id => [ 1, 2 ]) @new_post = @collection.new In 3.2.8, this would work as expected, creating a new Post object (albeit with @new_post.category_id = 1). However, in 3.2.9 this will cause the NoMethodError to be raised as above. It is difficult to avoid triggering this error without descoping before calling .new, breaking any apps running on 3.2.8 that rely on this behaviour. This patch deviates from 3.2.8 in that it does not retain the somewhat spurious behaviour of setting the attribute to 1. Instead, it explicitly sets these invalid values to nil : p = Post.new p.category_id = [ 1, 2 ] p.category_id # => nil This also fixes the situation where a scope using an array will "pollute" any newly instantiated records. @new_post = @collection.new @new_post.category_id # => nil Finally, 3.2.8 exhibited a behaviour where setting an object to an integer field caused it to be coerced to "1". This has not been retained, as it is spurious and surprising in the same way that setting Arrays and Heshes was : c = Category.find(6) p = Post.new # 3.2.8 p.category_id = c p.category_id # => 1 # This patch p.category_id = c p.category_id # => nil This commit includes explicit test cases that expose the original issue with calling new on a scope that uses an Array. As this is a common situation, an explicit test case is the best way to prevent regressions in the future. It also updates and separates existing tests to be explicit about the situation that is being tested (eg. AR objects vs. other objects vs. non-integers) | ||||
* | Change docs to use update instead of update_attributes | Amparo Luna + Guillermo Iguaran | 2013-01-03 | 2 | -2/+2 |
| | |||||
* | Rename update_attributes method to update, keep update_attributes as an alias | Amparo Luna + Guillermo Iguaran | 2013-01-03 | 7 | -14/+18 |
| | |||||
* | refactoring to_sym of Symbol in preload | Angelo capilleri | 2013-01-02 | 1 | -1/+3 |
| | |||||
* | remove meaningless AS::FrozenObjectError | Akira Matsuda | 2013-01-02 | 1 | -1/+1 |
| | |||||
* | Updated copyright notices for 2013 | Andrew Nesbitt | 2012-12-31 | 1 | -1/+1 |
| | |||||
* | refatctoring of some code repetition in spawn_methods | Angelo capilleri | 2012-12-31 | 1 | -8/+10 |
| | |||||
* | Point to guides.rubyonrails.org instead of edgeguides.rubyonrails.org | Santiago Pastorino | 2012-12-30 | 1 | -2/+2 |
| | |||||
* | Fix missing ending newline in db structure dump: | Thibault Jouan | 2012-12-30 | 1 | -1/+3 |
| | | | | | | | | | | | When dumping database structure with `rake db:structure:dump` and using migrations, the resulting file will not end with a newline char. Although it's not mandatory, it breaks a lot of simple use cases with programs like cat, more, grep, etc. This changes use `puts' instead of `<<' to append migration versions data to the dump and also split the line where this is happening as it was a bit long. | ||||
* | warning removed: shadowing outer local variable | Arun Agrawal | 2012-12-30 | 1 | -2/+2 |
| | |||||
* | fix time typcasting on group counts in PG | Aaron Patterson | 2012-12-28 | 1 | -2/+5 |
| | |||||
* | mysql does not return alias names, so fall back | Aaron Patterson | 2012-12-28 | 1 | -4/+10 |
| | |||||
* | fix PG typecasting errors | Aaron Patterson | 2012-12-28 | 1 | -2/+5 |
| | |||||
* | small refactoring, added blob_or_text_colum? in AbstractMysqlAdapter | Angelo Capilleri | 2012-12-28 | 1 | -2/+6 |
| | |||||
* | validate :on option on after_commit and after_rollback callbacks | Pascal Friederich | 2012-12-26 | 1 | -6/+16 |
| | |||||
* | Fixes for PR [#8267] | Marc-Andre Lafortune | 2012-12-22 | 3 | -5/+18 |
| | | | | | | | | * Fix Migration#reversible by not using `transaction`. * Adapt mysql adapter to updated api for remove_column * Update test after aedcd683684d08eaf30623a4b48ce31a31426372 | ||||
* | Correctly shows RAILS_ENV=development even when ENV['RAILS_ENV'] is not set ↵ | Andy Lindeman | 2012-12-21 | 1 | -1/+1 |
| | | | | | | (e.g., in Pow) * Fixes #8025 | ||||
* | Remove duplicated methods in command recorder and duplicated test name | Carlos Antonio da Silva | 2012-12-21 | 1 | -3/+3 |
| | |||||
* | Fix calling quote column name in interpolated string | Carlos Antonio da Silva | 2012-12-21 | 1 | -1/+1 |
| | |||||
* | Make execute, change_column and remove_columns methods actually irreversible | Marc-Andre Lafortune | 2012-12-21 | 1 | -1/+2 |
| | | | | [#8267] | ||||
* | Make change_table reversible when possible [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -1/+5 |
| | |||||
* | Migration generators use `change` even for destructive methods [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -16/+4 |
| | |||||
* | Factorize methods that are easily reversible [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -34/+20 |
| | |||||
* | Make remove_index reversible [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -4/+10 |
| | |||||
* | Differentiate between remove_column and remove_columns. Make remove_column ↵ | Marc-Andre Lafortune | 2012-12-21 | 4 | -16/+30 |
| | | | | | | reversible. [#8267] | ||||
* | Make drop_table reversible [#8267] | Marc-Andre Lafortune | 2012-12-21 | 2 | -3/+14 |
| | |||||
* | Add drop_join_table [#8267] | Marc-Andre Lafortune | 2012-12-21 | 2 | -3/+17 |
| | |||||
* | Add Migration#reversible for reversible data operations [#8267] | Marc-Andre Lafortune | 2012-12-21 | 2 | -1/+46 |
| | |||||
* | Allow revert of whole migration [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -3/+39 |
| | |||||
* | Extract exec_migration [#8267] | Marc-Andre Lafortune | 2012-12-21 | 1 | -11/+16 |
| | |||||
* | Allow reverting of migration commands with Migration#revert [#8267] | Marc-Andre Lafortune | 2012-12-21 | 2 | -42/+81 |
| | |||||
* | Split ridiculously long line | Marc-Andre Lafortune | 2012-12-21 | 1 | -1/+4 |
| | |||||
* | Simplify change_table and avoid duplicated logic | Marc-Andre Lafortune | 2012-12-21 | 1 | -14/+2 |
| | |||||
* | Serialized attribute can be serialized in an integer column | Rafael Mendonça França | 2012-12-21 | 1 | -0/+8 |
| | | | | Fix #8575 | ||||
* | Keep index names when using with sqlite3 | Yves Senn | 2012-12-19 | 1 | -2/+1 |
| | |||||
* | Fix argument name in fixtures method | Carlos Antonio da Silva | 2012-12-18 | 1 | -1/+1 |
| | | | | Relatedo to 8e44c93b4c0e4b1bdd0fca13b79f5be1088d6959. | ||||
* | Revert "use File.basename to get the filename minus .yml" | Aaron Patterson | 2012-12-18 | 1 | -4/+3 |
| | | | | | | | This reverts commit 00c5342d96a3677c0a6a2bb8316c76182f5bdfdd. Conflicts: activerecord/lib/active_record/fixtures.rb | ||||
* | #5523 Add ability for postgresql adapter to disable user triggers in ↵ | Gary S. Weaver | 2012-12-18 | 1 | -4/+12 |
| | | | | disable_referential_integrity. | ||||
* | Extract some methods | Carlos Antonio da Silva | 2012-12-18 | 1 | -16/+22 |
| | |||||
* | Change relation in place | Carlos Antonio da Silva | 2012-12-18 | 1 | -1/+1 |
| | |||||
* | Simplify value logic by always typecasting | Carlos Antonio da Silva | 2012-12-18 | 1 | -11/+5 |
| | |||||
* | Avoid unnecessary hashes with error options | Carlos Antonio da Silva | 2012-12-18 | 1 | -1/+4 |
| | |||||
* | Remove prepend_and_append requirement from AS | Carlos Antonio da Silva | 2012-12-18 | 1 | -3/+1 |
| | | | | It's not necessary to use this extension here, we are fine with Array#unshift. | ||||
* | Refactor uniqueness validator logic a bit | Carlos Antonio da Silva | 2012-12-18 | 1 | -10/+5 |
| | | | | | Cleanup some code, avoid extra hash with reverse_merge, and don't use send for :id, since it's always present. | ||||
* | Added support for validates_uniqueness_of in PostgreSQL array columns. ↵ | Pedro Padron | 2012-12-18 | 1 | -1/+6 |
| | | | | Fixes: #8075. | ||||
* | AR supporting new int4range and int8range data type on PostgreSQL >= 9.2. ↵ | Alexey | 2012-12-17 | 1 | -4/+11 |
| | | | | Fix realization | ||||
* | AR supporting new intrange data type on PostgreSQL >= 9.2 | Alexey | 2012-12-16 | 6 | -4/+68 |
| | |||||
* | Skip binary data with binds test for mysql2, fix build | Carlos Antonio da Silva | 2012-12-14 | 1 | -1/+1 |
| | | | | | | | Mysql2 doesn't support binds, which means no binds payload is set when logging, so the logic to render binary data differently here doesn't work. Introduced in 99d142a9375f9ba1960863b3cc745265aa9a14df. | ||||
* | Do not log the binding values for binary columns. | Matthew M. Boedicker | 2012-12-14 | 1 | -1/+11 |
| | | | | They tend to be large and not very useful in the log. |