aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | | Merge pull request #21074 from ↵Robin Dupret2015-08-251-3/+3
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | vrybas/rdoc-fix-typo-belongs-to-inverse-of-class-name RDoc: fix wrong model name `:inverse_of` with `:belongs_to` [ci skip]
| * | | | | | | | | RDoc: fix wrong model name `:inverse_of` with `:belongs_to` [ci skip]Vladimir Rybas2015-07-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a typo in ActiveRecord associations RDocs. Wrong `Taggable` model name, instead of `Tagging` in example of using option `:inverse_of` with `:belongs_to` association. Commit where typo was introduced: https://github.com/rails/rails/commit/91fd6510563f84ee473bb217bc63ed598abe3f24#diff-39001423802a8470dba9c931e66e101eR11 First it appears in `activerecord/CHANGELOG` in example of `:inverse_of` usage: ```ruby class Post < ActiveRecord::Base has_many :taggings has_many :tags, :through => :taggings end class Tagging < ActiveRecord::Base belongs_to :post belongs_to :tag, :inverse_of => :tagging # :inverse_of must be set! end class Tag < ActiveRecord::Base has_many :taggings has_many :posts, :through => :taggings end post = Post.first tag = post.tags.build :name => "ruby" !> tag.save # will save a Taggable linking to the post ``` The last line should be ```ruby tag.save # will save a Tagging linking to the post ``` The same typo appears in `activerecord/lib/active_record/associations.rb`. The association name is given as `:inverse_of => :taggings`, but class name is `Taggable`. ```ruby # @post = Post.first # @tag = @post.tags.build :name => "ruby" # @tag.save # !> # The last line ought to save the through record (a <tt>Taggable</tt>). This will only work if the # <tt>:inverse_of</tt> is set: # !> # class Taggable < ActiveRecord::Base # belongs_to :post !> # belongs_to :tag, :inverse_of => :taggings # end ``` This PR fixes model name.
* | | | | | | | | | [ci skip] Fix #21364 error in documentation about ActiveRecord::EnumAndrew Grimm2015-08-251-2/+1
| | | | | | | | | |
* | | | | | | | | | Merge pull request #21354 from yui-knk/fix/migration_file_timestampRobin Dupret2015-08-241-1/+1
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | [ci skip] Fix migration file's timestamp
| * | | | | | | | | | [ci skip] Fix migration file's timestampyui-knk2015-08-241-1/+1
| | |_|/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | In rails generally migration file's timestamp is "YYYYMMDDHHMMSS".
* / | | | | | | | | Only nullify persisted has_one target associationsAgis-2015-08-241-1/+1
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since after 87d1aba3c `dependent: :destroy` callbacks on has_one assocations run *after* destroy, it is possible that a nullification is attempted on an already destroyed target: class Car < ActiveRecord::Base has_one :engine, dependent: :nullify end class Engine < ActiveRecord::Base belongs_to :car, dependent: :destroy end > car = Car.create! > engine = Engine.create!(car: car) > engine.destroy! # => ActiveRecord::ActiveRecordError: cannot update a > destroyed record In the above case, `engine.destroy!` deletes `engine` and *then* triggers the deletion of `car`, which in turn triggers a nullification of `engine.car_id`. However, `engine` is already destroyed at that point. Fixes #21223.
* | | | | | | | | Merge pull request #21332 from ronakjangir47/take_docsEileen M. Uchitelle2015-08-231-0/+25
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Added docs for CollectionProxy#take
| * | | | | | | | | Added docs for CollectionProxy#take [ci skip]Ronak Jangir2015-08-231-0/+25
| | |/ / / / / / / | |/| | | | | | |
* | | | | | | | | Merge pull request #21335 from yui-knk/refactor/remove_not_used_block_argYves Senn2015-08-231-1/+1
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | Remove not used a block argument (`&block`)
| * | | | | | | | Remove not used a block argument (`&block`)yui-knk2015-08-231-1/+1
| | |/ / / / / / | |/| | | | | |
* / | | | | | | JSON is still an adapter specific type.Sean Griffin2015-08-218-36/+50
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several changes were made in #21110 which I am strongly opposed to. (this is what I get for going on vacation. :trollface:) No type should be introduced into the generic `ActiveRecord::Type` namespace, and *certainly* should not be registered into the registry unconstrained unless it is supported by *all* adapters (which basically means that it was specified in the ANSI SQL standard). I do not think `# :nodoc:` ing the type is sufficient, as it still makes the code of Rails itself very unclear as to what the role of that class is. While I would argue that this shouldn't even be a super class, and that MySql and PG's JSON types are only superficially duplicated (they might look the same but will change for different reasons in the future). However, I don't feel strongly enough about it as a point of contention (and the biggest cost of harming the blameability has already occured), so I simply moved the superclass into a namespace where its role is absolutely clear. After this change, `attribute :foo, :json` will once again work with MySQL and PG, but not with Sqlite3 or any third party adapters. Unresolved questions -------------------- The types that and adapter publishes (at least those are unique to that adapter, and not adding additional behavior like `MysqlString` should probably be part of the adapter's public API. Should we standardize the namespace for these, and document them?
* | | | | | | better docs for `disable_ddl_transaction!`. Closes #21044.Yves Senn2015-08-211-1/+4
| | | | | | |
* | | | | | | Fix Punctuation in `AutosaveAssociation` RDocRobert Eshleman2015-08-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [ci skip]
* | | | | | | uniqueness validation raises error for persisted record without pk.Yves Senn2015-08-202-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #21304. While we can validate uniqueness for record without primary key on creation, there is no way to exclude the current record when updating. (The update itself will need a primary key to work correctly).
* | | | | | | Merge pull request #21282 from sjain1107/added_docsYves Senn2015-08-191-0/+3
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Added docs for TableDefinition #coloumns & #remove_column [ci skip]
| * | | | | | | Added docs for TableDefinition #coloumns & #remove_column [ci skip]sjain11072015-08-181-0/+3
| | | | | | | |
* | | | | | | | Add a native JSON data type support in MySQLRyuta Kamizono2015-08-189-50/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of MySQL 5.7.8, MySQL supports a native JSON data type. Example: create_table :json_data_type do |t| t.json :settings end
* | | | | | | | Merge pull request #21283 from ravindrakumawat/add_docs_for_pending_migrationYves Senn2015-08-181-0/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add Docs for ActiveRecord #check_pending [ci skip]
| * | | | | | | | Add Docs for ActiveRecord #check_pending [ci skip]ravindra kumar kumawat2015-08-181-0/+1
| | | | | | | | |
* | | | | | | | | Correct error message in Standard American english and add a test case for ↵prakash2015-08-181-1/+1
| |/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | the same.
* | | | | | | | Fix middleware deprecation message. Related to #21172.Jon Atack2015-08-141-1/+1
| | | | | | | |
* | | | | | | | Merge pull request #19683 from tristang/require-option-for-counter-cacheRafael Mendonça França2015-08-131-1/+8
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Require explicit counter_cache option for has_many
| * | | | | | | | Require explicit counter_cache option for has_manyTristan Gamilis2015-04-071-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously has_many associations assumed a counter_cache was to be used based on the presence of an appropriately named column. This is inconsistent, since the inverse belongs_to association will not make this assumption. See issues #19042 #8446. This commit checks for the presence of the counter_cache key in the options of either the has_many or belongs_to association as well as ensuring that the *_count column is present.
* | | | | | | | | Merge pull request #19770 from vngrs/prevent_duplicated_where_clausesRafael Mendonça França2015-08-131-0/+1
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Prevent duplicating `where` clauses
| * | | | | | | | | Prevent duplicating `where` clauses when model is extended from an abstract ↵Mehmet Emin İNAÇ2015-04-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | class Fixes #19528 fix for mysql2 test better test
* | | | | | | | | | descriptive error message when fixtures contian a missing column.Yves Senn2015-08-131-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #21201.
* | | | | | | | | | Skip statement cache on through association readerRafael Mendonça França2015-08-123-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the through class has default scopes we should skip the statement cache. Closes #20745.
* | | | | | | | | | Merge pull request #21210 from akihiro17/fix-rdoc-markupRafael Mendonça França2015-08-121-1/+1
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | [ci skip] Fix rdoc markup
| * | | | | | | | | | [ci skip] Fix rdoc markupakihiro172015-08-121-1/+1
| | | | | | | | | | |
* | | | | | | | | | | docs, tiny rdoc markup fix. [ci skip]Yves Senn2015-08-121-1/+2
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `+` doesn't work around content with spaces fallback `<tt>`.
* | | | | | | | | | Merge pull request #21205 from akihiro17/fix-docMatthew Draper2015-08-121-13/+13
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | [ci skip] Fix the indentation
| * | | | | | | | | | [ci skip] Fix the indentationakihiro172015-08-121-13/+13
| | | | | | | | | | |
* | | | | | | | | | | Merge pull request #17885 from starbelly/patch-1Yves Senn2015-08-111-8/+20
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add method to run command-line db apps Conflicts: activerecord/CHANGELOG.md
| * | | | | | | | | | | Add run_cmd class method to ActiveRecord::Tasks::DatabaseTasksstarbelly2015-08-012-11/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added run_cmd() class method to dry up Kernel.system() messages within this namespace and avoid shell expansion by passing a list of arguments instead of a string - Update structure_dump, structure_load, and related tests units to pass a list of params instead of using a string to avoid shell expansion
* | | | | | | | | | | | Merge pull request #21165 from manlon/masterRafael Mendonça França2015-08-111-3/+7
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / / / |/| | | | | | | | | | | use correct DB connection for generated HABTM table
| * | | | | | | | | | | use correct DB connection for generated HABTM tableMatt Hanlon2015-08-071-3/+7
| | | | | | | | | | | |
* | | | | | | | | | | | Reference actual classesMiles Starkenburg2015-08-081-5/+5
| | | | | | | | | | | |
* | | | | | | | | | | | Remove XML Serialization from core.Zachary Scott2015-08-072-195/+0
| |_|_|_|_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes the following classes: - ActiveModel::Serializers::Xml - ActiveRecord::Serialization::XmlSerializer
* | | | | | | | | | | Add ActiveRecord::Relation#in_batchesSina Siadat2015-08-074-10/+164
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `in_batches` yields Relation objects if a block is given, otherwise it returns an instance of `BatchEnumerator`. The existing `find_each` and `find_in_batches` methods work with batches of records. The new API allows working with relation batches as well. Examples: Person.in_batches.each_record(&:party_all_night!) Person.in_batches.update_all(awesome: true) Person.in_batches.delete_all Person.in_batches.map do |relation| relation.delete_all sleep 10 # Throttles the delete queries end
* | | | | | | | | | Merge pull request #20459Sean Griffin2015-08-061-0/+24
|\ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | Add missing data types for ActiveRecord migrationsMehmet Emin İNAÇ2015-06-081-0/+24
| | | | | | | | | | |
* | | | | | | | | | | Merge pull request #21092 from vngrs/use_memoization_for_ids_readerRafael Mendonça França2015-08-061-2/+4
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Use memoization for collection associations ids reader
| * | | | | | | | | | | Use memoization for collection associations ids readerMehmet Emin İNAÇ2015-08-031-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #21082 remove extra space
* | | | | | | | | | | | better docs for ActiveRecord::Migration#table_name_optionsBrendan Buckingham2015-08-061-1/+3
| | | | | | | | | | | |
* | | | | | | | | | | | Should use `server_info[:version]` instead of `info[:version]`Ryuta Kamizono2015-08-041-1/+1
|/ / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because `info[:version]` is a client version, the server version is `server_info[:version]`.
* | | | | | | | | | | Fix test failures caused by #20884Sean Griffin2015-08-011-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PostgreSQL is strict about the usage of `DISTINCT` and `ORDER BY`, which one of the tests demonstrated. The order clause is never going to be relevant in the query we're performing, so let's just remove it entirely.
* | | | | | | | | | | Merge pull request #20884Sean Griffin2015-08-014-0/+57
|\ \ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | Add #cache_key to ActiveRecord::Relation.
| * | | | | | | | | | Add #cache_key to ActiveRecord::Relation.Alberto F. Capel2015-07-204-0/+57
| | | | | | | | | | |
* | | | | | | | | | | Decrease string allocations on AR#respond_to?schneems2015-07-291-1/+9
| |_|_|_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a symbol is passed in, we call `to_s` on it which allocates a string. The two hardcoded symbols that are used internally are `:to_partial_path` and `:to_model`. This change buys us 71,136 bytes of memory and 1,777 fewer objects per request.
* | | | | | | | | | Add `:nodoc:` for internal testing methods [ci skip]Robin Dupret2015-07-281-2/+2
| | | | | | | | | |