aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* Copy changed_attributes across to newly become'd recordsJonathan del Strother2013-12-271-0/+1
| | | Without this, the original record's values won't get saved, since the partial insertions support (https://github.com/rails/rails/commit/144e8691cbfb8bba77f18cfe68d5e7fd48887f5e) checks for changed values and thinks there are none.
* Raise NoDatabaseError when db does not existschneems2013-12-243-0/+18
| | | Building on the work of #13427 this PR adds a helpful error message to the adapters: mysql, mysql2, and sqlite3
* Deprecate use of string in establish_connection as connection lookupJosé Valim2013-12-242-9/+23
|
* Only build a ConnectionSpecification if requiredJosé Valim2013-12-243-28/+30
|
* Fix build failures related to the new ENV options in ymlJosé Valim2013-12-242-4/+4
|
* Merge pull request #13463 from josevalim/jv-envJosé Valim2013-12-235-51/+48
|\ | | | | Do not store production information in .yml files
| * Guarantee the connection resolver handles string valuesJosé Valim2013-12-235-51/+48
| | | | | | | | | | | | | | | | | | This commit also cleans up the rake tasks that were checking for DATABASE_URL in different places. In fact, it would be nice to deprecate DATABASE_URL usage in the long term, considering the direction we are moving of allowing those in .yml files.
* | Tidy up fix for PG extensions quotingCarlos Antonio da Silva2013-12-231-4/+6
| | | | | | | | | | Always pass in the column for quote_bound_value and quote using it in case it exists there.
* | Serialize postgres' hstore, json and array types correctly in AR update methods.Tadas Tamosauskas2013-12-231-4/+5
| | | | | | | | | | | | | | | | | | Fixes #12261. Closes #12395. Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/adapters/postgresql/array_test.rb activerecord/test/cases/adapters/postgresql/json_test.rb
* | Do not consider PG array columns as number or text columnsCarlos Antonio da Silva2013-12-231-1/+9
|/ | | | | | | | | | | | | | | | | | | | | | | The code uses these checks in several places to know what to do with a particular column, for instance AR attribute query methods has a branch like this: if column.number? !value.zero? end This should never be true for array columns, since it would be the same as running [].zero?, which results in a NoMethodError exception. Fixing this by ensuring that array columns in PostgreSQL never return true for number?/text? checks. Since most of the array support was based on the postgres_ext lib, it's worth noting it does the same thing for numeric array columns too: https://github.com/dockyard/postgres_ext/blob/v1.0.0/lib/postgres_ext/active_record/connection_adapters/postgres_adapter.rb#L72 This extended the same logic for text columns to ensure consistency.
* Tell how to Create a Database in Error Messageschneems2013-12-233-0/+26
| | | | | | | | | | | | | | | | Currently if you attempt to use a database that does not exist you get an error: ``` PG::ConnectionBad FATAL: database "db_error" does not exist ``` The solution is easy, create and migrate your database however new developers may not know these commands by memory. Instead of requiring the developer to search for a solution, tell them how to fix the problem in the error message: ``` ActiveRecord::NoDatabase: FATAL: database "db_error" does not exist Run `$ bin/rake db:create db:migrate` to create your database ``` Active Record should not know about `rake db:migrate` so this additional information needs to come from the railtie. Potential alternative implementation suggestions are welcome.
* Fix comment example in AR enum [ci skip]Carlos Antonio da Silva2013-12-231-1/+1
|
* On destroying do not touch destroyed belongs to association.Paul Nikitochkin2013-12-231-1/+1
| | | | Fixes: #13445
* fix quoting non-stringsDamien Mathieu2013-12-221-1/+1
| | | | Closes #13444
* Use the same enum definition in the docs and in the comments [ci skip]Godfrey Chan2013-12-221-6/+6
|
* fix url connections for sqlite3Aaron Patterson2013-12-201-1/+12
|
* Merge pull request #13417 from TalkativeTree/comments_changeRichard Schneeman2013-12-191-1/+1
|\ | | | | fix CollectionAssociation's comments
| * change CollectionAssociation's comments to say Association instead of ↵Ben Angel2013-12-191-1/+1
| | | | | | | | AssociationProxy to match changes for 3.1 removing Association proxy.
* | Merge pull request #13412 from arthurnn/quote_id_not_idRafael Mendonça França2013-12-191-1/+3
|\ \ | | | | | | quoting: Check if id is a valid method before using it
| * | quoting: Check if id is a valid method before using itArthur Neves2013-12-191-1/+3
| | | | | | | | | | | | | | | Need to check if valud also respond_to :id before calling it, otherwise things could explode.
* | | fix default select when from is usedCody Cutrer2013-12-191-1/+3
|/ /
* | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-12-203-3/+3
|\ \
| * | Typos. return -> returns. [ci skip]Lauro Caetano2013-12-033-3/+3
| | |
* | | Merge pull request #13395 from kuldeepaggarwal/postgres-table-ref-regexCarlos Antonio da Silva2013-12-191-1/+1
|\ \ \ | | | | | | | | modified regex for finding table_name from a multiline sql query in postgresql
| * | | Fix PostgreSQL insert to properly extract table name from multiline string SQL.Kuldeep Aggarwal2013-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, executing an insert SQL in PostgreSQL with a command like this: insert into articles( number) values( 5152 ) would not work because the adapter was unable to extract the correct articles table name.
* | | | Merge pull request #13400 from nishant-cyro/docsGuillermo Iguaran2013-12-181-1/+1
|\ \ \ \ | | | | | | | | | | fix typos and grammar mistake [ci skip]
| * | | | fix typos and grammar mistake [ci skip]nishant-cyro2013-12-191-1/+1
| | | | |
* | | | | Fix typo: data --> dateAlex Ghiculescu2013-12-191-1/+1
| | | | |
* | | | | Fix to_param when attribute has multibyte characterrono232013-12-191-2/+4
| | | | |
* | | | | Fix nil assignment to polymorphic belongs_toJeremy Kemper2013-12-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assigning nil to a polymorphic belongs_to would nullify its _id field by not its _type field. Fixes failing test from c141dfc838a5dca9f197814410fa5d44c143129c. Regression from 1678e959e973de32287b65c52ebc6cce87148951.
* | | | | Merge pull request #13340 from akshay-vishnoi/typoGodfrey Chan2013-12-181-5/+4
|\ \ \ \ \ | |_|/ / / |/| | | | #none documentation updated [ci skip]
| * | | | #none documentation updated [ci skip]Akshay Vishnoi2013-12-181-5/+4
| | | | |
* | | | | Get ready to release 4.1.0.beta1David Heinemeier Hansson2013-12-171-1/+1
| | | | |
* | | | | Create a blacklist to disallow mutator methods to be delegated to `Array`.Lauro Caetano2013-12-171-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change was necessary because the whitelist wouldn't work. It would be painful for users trying to update their applications. This blacklist intent to prevent odd bugs and confusion in code that call mutator methods directely on the `Relation`.
* | | | | MySQL: remove the old-school 'packets out of order' messageJeremy Kemper2013-12-171-6/+0
| | | | | | | | | | | | | | | | | | | | Blast from the past, MySQL 4 era, when the password hashing style changed.
* | | | | Better support for `where()` conditions that use an association name.Martin Emde2013-12-161-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the name of an association in `where` previously worked only if the value was a single `ActiveRecrd::Base` object. e.g. Post.where(author: Author.first) Any other values, including `nil`, would cause invalid SQL to be generated. This change supports arguments in the `where` query conditions where the key is a `belongs_to` association name and the value is `nil`, an `Array` of `ActiveRecord::Base` objects, or an `ActiveRecord::Relation` object. # Given the Post model class Post < ActiveRecord::Base belongs_to :author end # nil value finds records where the association is not set Post.where(author: nil) # SELECT "posts".* FROM "posts" WHERE "posts"."author_id" IS NULL # Array values find records where the association foreign key # matches the ids of the passed ActiveRecord models, resulting # in the same query as Post.where(author_id: [1,2]) authors_array = [Author.find(1), Author.find(2)] Post.where(author: authors_array) # ActiveRecord::Relation values find records using the same # query as Post.where(author_id: Author.where(last_name: "Emde")) Post.where(author: Author.where(last_name: "Emde")) Polymorphic `belongs_to` associations will continue to be handled appropriately, with the polymorphic `association_type` field added to the query to match the base class of the value. This feature previously only worked when the value was a single `ActveRecord::Base`. class Post < ActiveRecord::Base belongs_to :author, polymorphic: true end Post.where(author: Author.where(last_name: "Emde")) # Generates a query similar to: Post.where(author_id: Author.where(last_name: "Emde"), author_type: "Author")
* | | | | Fix missing closing rdoc tag [ci skip]Carlos Antonio da Silva2013-12-161-1/+1
| | | | |
* | | | | Merge pull request #13307 from akshay-vishnoi/typoRafael Mendonça França2013-12-151-2/+2
|\| | | | | | | | | | | | | | Spelling and Grammar check [ci skip]
| * | | | Spelling and Grammar check [ci skip]Akshay Vishnoi2013-12-161-2/+2
| | | | |
* | | | | Merge pull request #13313 from ccutrer/temp-tablesRafael Mendonça França2013-12-155-17/+38
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | support creating temporary tables from queries Conflicts: activerecord/CHANGELOG.md
| * | | | | support creating temporary tables from queriesCody Cutrer2013-12-145-17/+38
| | |/ / / | |/| | | | | | | | | | | | | | | | | | also override drop_table in AbstractMySQLAdapter to properly drop temporary tables without committing the transaction
* / | | | db:test:clone and prepare must load environmentArthur Neves2013-12-141-3/+2
|/ / / / | | | | | | | | | | | | | | | | | | | | db:test:clone and db:test:prepare use ActiveRecord::Base. configurations, so we need to load the rails environment, otherwise the config wont be in place.
* | | | argument prefix warning removedArun Agrawal2013-12-131-1/+1
| | | | | | | | | | | | | | | | * interpreted as a argument prefix
* | | | Fix mysql to support duplicated column namesKassio Borges2013-12-131-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will fix the [broken test](https://github.com/rails/rails/commit/4a2650836680f51490e999c3c8441a2f9adff96e) `test_with_limiting_with_custom_select`. The query's result was built in a hash with column name as key, if the result have a duplicated column name the last value was overriding the first one.
* | | | Add a bunch of Relation -> Array delegate methods to the whitelist. This ↵Jeremy Kemper2013-12-121-4/+12
| | | | | | | | | | | | | | | | won't last - aim to switch back to a blacklist for mutator methods.
* | | | Merge pull request #12590 from laurocaetano/whitelist-to-delegate-array-methodsRafael Mendonça França2013-12-121-23/+11
|\ \ \ \ | | | | | | | | | | Create a whitelist of methods to be delegated to Array.
| * | | | Use `public_send` instead of just use `send`.Lauro Caetano2013-12-121-5/+5
| | | | |
| * | | | Use a whitelist to delegate methods to arrayLauro Caetano2013-12-121-18/+6
| | | | |
* | | | | extract cache counter logic to one methodAaron Patterson2013-12-121-11/+10
| | | | |
* | | | | remove duplicate codeAaron Patterson2013-12-121-15/+6
| | | | |