aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Improve relation docs about to_sql and where_values_hashCarlos Antonio da Silva2013-01-191-4/+4
| | | | | | | | * User class instead of Users. * #where_values_hash does not change the value to downcase as the example was showing. [ci skip]
* Merge pull request #8994 from Springest/fix_default_scope_update_all_delete_allJon Leighton2013-01-181-2/+2
|\ | | | | Fix .update_all and .delete_all when using a condition on a joined table in a default_scope
| * Fix .update_all and .delete_all when using a condition on a joined tableDerek Kraan2013-01-111-2/+2
| | | | | | | | | | | | | | | | | | in a default_scope. `Model.joins(...).where(condition_on_joined_table).update_all` / `delete_all` worked, but the same operation implemented with a default_scope generated a SQL error because ActiveRecord ignored the join but implemented the where condition anyways.
* | Revert "Merge pull request #8989 from robertomiranda/use-rails-4-find-by"Guillermo Iguaran2013-01-184-8/+8
| | | | | | | | | | This reverts commit 637a7d9d357a0f3f725b0548282ca8c5e7d4af4a, reversing changes made to 5937bd02dee112646469848d7fe8a8bfcef5b4c1.
* | Merge pull request #8989 from robertomiranda/use-rails-4-find-byGuillermo Iguaran2013-01-184-8/+8
|\ \ | | | | | | Replace deprecated find_by_* with find_by
| * | User Rails 4 find_byrobertomiranda2013-01-184-8/+8
| | |
* | | Undeprecate the :extend optionJon Leighton2013-01-182-1/+3
| | | | | | | | | | | | | | | | | | | | | Suggested by @dhh. It doesn't affect the generated SQL, so seems reasonable to continue to allow it as an association option.
* | | CollectionProxy should be default scopedJon Leighton2013-01-181-0/+1
| | | | | | | | | | | | Fixes #8795
* | | Merge pull request #8912 from senny/8879_association_empty_methodJon Leighton2013-01-181-1/+1
|\ \ \ | | | | | | | | `CollectionAssociation#empty?` respects newly builded records
| * | | `CollectionAssociation#empty?` respects newly builded recordsYves Senn2013-01-131-1/+1
| | | |
* | | | iterates the RDoc of update_column(s)Xavier Noria2013-01-181-13/+13
| |/ / |/| | | | | | | | | | | | | | | | | | | | This revision makes crystal clear that the methods go straight to the database and update the receiver. It also adds and example, and removes the duplication in the singular and plural forms by referring one to the other.
* | | Refactor predicate builder when receiving empty hashCarlos Antonio da Silva2013-01-171-4/+4
| | | | | | | | | | | | | | | | | | | | | There's no need to create a new arel table or reflect on the column association if the value is empty, these attributes are not used. Also no need to concat a new array, just append the query value.
* | | Don't rely on Hash key's orderingVitor Baptista2013-01-162-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we set encoding latin1 for a PostgreSQL database, it calls PostgreSQLAdapter::create_database with options that have, among other things: { 'encoding' => 'latin1' } Then, we use reverse_merge(:encoding => "utf8") to setup the default encoding. In the end, the hash looks like: { :encoding => 'utf8', 'encoding' => 'latin1' } The call to options.symbolize_keys calls to_sym on each_key of this Hash. It usually means that the encoding passed overwrites the default utf8, but it's not guaranteed. So, we shouldn't rely on it. The same was happening in ActiveRecord::ConnectionHandling.
* | | Revert "Merge pull request #8930 from cordawyn/ordered_railties"Carlos Antonio da Silva2013-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8348f9ea72c9b50fc4d4462fd9ebe3bba932c783, reversing changes made to 9dfe2d6f9fabddf9a451a995678a9648c8aaf401. Reason: this broke railties tests as explained in the issue, and the author is going to review and report back. https://github.com/rails/rails/pull/8930#issuecomment-12272671
* | | Merge pull request #8930 from cordawyn/ordered_railtiesCarlos Antonio da Silva2013-01-151-1/+1
|\ \ \ | | | | | | | | rake railties:install:migrations respects the order of railties
| * | | rake railties:install:migrations respects the order of railtiesSlava Kravchenko2013-01-141-1/+1
| |/ /
* / / Improve mysql database tasks handling to ensure we always rescue from an ↵Carlos Antonio da Silva2013-01-151-9/+13
|/ / | | | | | | | | | | | | | | | | | | exception We were previously rescuing "nil" when no exception class was found. This does work in 1.9.3, but does not in 2.0, raising an exception asking for a class or module to be given to the rescue clause. Thanks @yahonda for catching this.
* | Fix AR tests due to Mysql constant not being definedCarlos Antonio da Silva2013-01-123-7/+5
| |
* | Bring back "database already exists" messages when running rake tasksCarlos Antonio da Silva2013-01-124-13/+20
|/ | | | | | | | | | When running tasks such "rake db:setup", instead of showing messages like "db_development already exists", it was showing a big stack trace and a message "Couldn't create database for ..." with the configuration options, a very confusing message with a big trace. This brings back the functionality present in 3-2, showing the same message.
* Merge pull request #8568 from inossidabile/fix-in_clause_lengthJon Leighton2013-01-111-1/+1
|\ | | | | Correct source for in_clause_length for eager loading (Fix for #8474)
| * Eager loading made to use relation's in_clause_length instead of host's one ↵Boris Staal2012-12-201-1/+1
| | | | | | | | (fixes #8474)
* | Merge pull request #8823 from acapilleri/target_reflection_has_associated_recordCarlos Antonio da Silva2013-01-081-5/+1
|\ \ | | | | | | Refactor target_reflection_has_associated_record?
| * | target_reflection_has_associated_record? refactoringAngelo Capilleri2013-01-081-5/+1
| | |
* | | Merge pull request #8826 from acapilleri/different_targetCarlos Antonio da Silva2013-01-081-2/+5
|\ \ \ | | | | | | | | Improved different_target conditions
| * | | improved different_target conditionsAngelo Capilleri2013-01-081-2/+5
| |/ /
* | | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-01-095-58/+16
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: guides/source/getting_started.md
| * | | prefer american spelling of 'behavior'Gosha Arinich2013-01-072-3/+3
| | | |
| * | | remove meaningless use of Relation#allAkira Matsuda2013-01-033-4/+4
| | | | | | | | | | | | | | | | particularly, `all(options)` would warn
| * | | wrong model nameAkira Matsuda2013-01-021-1/+1
| | | |
| * | | find + conditions is deprecated in AR 4Akira Matsuda2013-01-021-3/+3
| | | |
| * | | find_or_initialize_by is deprecated in AR 4Akira Matsuda2013-01-021-7/+0
| | | |
| * | | find_or_create_by is deprecated in AR 4Akira Matsuda2013-01-022-27/+2
| | | |
| * | | find_last_by is deprecated in AR 4Akira Matsuda2013-01-021-4/+3
| | | |
| * | | find_all_by is deprecated in AR 4Akira Matsuda2013-01-021-6/+3
| | | |
| * | | scoped_by is deprecated in AR 4Akira Matsuda2013-01-021-6/+0
| | | |
* | | | Ignore binds payload with nil column in AR log subscriberCarlos Antonio da Silva2013-01-081-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some tests were raising the following error: Could not log "sql.active_record" event. NoMethodError: undefined method `type' for nil:NilClass` Due to the way binds were being logged, the column info was considered always present, but that is not true for some of the tests listed in the issue. Closes #8806.
* | | | Merge pull request #8800 from acapilleri/primary_keyAndrew White2013-01-081-1/+1
|\ \ \ \ | | | | | | | | | | refactor reset_primary_key and change !blank? to present? in get_primary...
| * | | | change unless !blank? to if blank? in get_primary_keyAngelo capilleri2013-01-081-1/+1
| | | | |
* | | | | Fix named scope + class method exampleCarlos Antonio da Silva2013-01-071-3/+1
|/ / / / | | | | | | | | | | | | Closes #8804 [ci skip]
* | | | Use whitelist to pass valid connection parameters to PGConn.Rafael Mendonça França2013-01-061-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All the valids parameters for libpq are used. See http://www.postgresql.org/docs/9.1/static/libpq-connect.html for the full list Fixes #8784
* | | | Remove the configuration key in the correct placeRafael Mendonça França2013-01-061-3/+1
| | | |
* | | | Namespace HashWithIndifferentAccessAkira Matsuda2013-01-071-3/+3
| | | |
* | | | Fix error when assigning NaN to an integer columnTristan Harward2013-01-061-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also covers any non-castable case by returning nil, which is in-line with the intention of the former implementation, but covers the odd cases which respond to to_i but raise an error when it's called, such as NaN, Infinity and -Infinity. Fixes #8757
* | | | Missing requireAkira Matsuda2013-01-071-0/+2
| | | |
* | | | These are already required through AS/railsAkira Matsuda2013-01-078-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | * dependencies/autoload * concern * deprecation
* | | | Remove unnecessary begin..rescue..end, use only rescueAkira Matsuda2013-01-061-25/+23
| | | |
* | | | Support for PostgreSQL's ltree data type.Rob Worley2013-01-042-1/+9
| | | |
* | | | Reuse the Column integer converterRafael Mendonça França2013-01-031-1/+1
| | | |
* | | | Fix undefined method `to_i' introduced since 3.2.8Jason Stirk2013-01-041-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_attributesAmparo Luna + Guillermo Iguaran2013-01-032-2/+2
| | |