aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Do not invoke callbacks when delete_all is calledNeeraj Singh2013-06-309-17/+117
| | | | | | | | | | | Method `delete_all` should not be invoking callbacks and this feature was deprecated in Rails 4.0. This is being removed. `delete_all` will continue to honor the `:dependent` option. However if `:dependent` value is `:destroy` then the default deletion strategy for that collection will be applied. User can also force a deletion strategy by passing parameter to `delete_all`. For example you can do `@post.comments.delete_all(:nullify)`
* remove deprecated implicit join references.Yves Senn2013-06-296-87/+25
|
* Merge pull request #11161 from dmitry/find_in_batches_works_without_loggerCarlos Antonio da Silva2013-06-282-2/+12
|\ | | | | | | | | ActiveRecord find_in_batches should work without logger When I set logger to nil both methods from Batches module find_in_batches or find_each should work anyway.
| * find_in_batches should work without loggerDmitry Polushkin2013-06-282-2/+12
| |
* | Remove order_values argument now that default_scope is simplifiedCarlos Antonio da Silva2013-06-281-5/+5
| | | | | | | | | | | | | | | | | | | | In 94924dc32baf78f13e289172534c2e71c9c8cade the internal default_scope implementation has changed making it simpler to follow, meaning that the old usage of with_default_scope has been removed. With that, order_values was the same argument for both calls to find_first_with_limit, so remove it and use the existent attribute for the sake of clarity/simplification.
* | Simplify/fix implementation of default scopesJon Leighton2013-06-2812-74/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation was necessary in order to support stuff like: class Post < ActiveRecord::Base default_scope where(published: true) scope :ordered, order("created_at") end If we didn't evaluate the default scope at the last possible moment before sending the SQL to the database, it would become impossible to do: Post.unscoped.ordered This is because the default scope would already be bound up in the "ordered" scope, and therefore wouldn't be removed by the "Post.unscoped" part. In 4.0, we have deprecated all "eager" forms of scopes. So now you must write: class Post < ActiveRecord::Base default_scope { where(published: true) } scope :ordered, -> { order("created_at") } end This prevents the default scope getting bound up inside the "ordered" scope, which means we can now have a simpler/better/more natural implementation of default scoping. A knock on effect is that some things that didn't work properly now do. For example it was previously impossible to use #except to remove a part of the default scope, since the default scope was evaluated after the call to #except.
* | Apply default scope when joining associations.Jon Leighton2013-06-283-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example: class Post < ActiveRecord::Base default_scope -> { where published: true } end class Comment belongs_to :post end When calling `Comment.join(:post)`, we expect to receive only comments on published posts, since that is the default scope for posts. Before this change, the default scope from `Post` was not applied, so we'd get comments on unpublished posts.
* | Fix testJon Leighton2013-06-281-1/+8
| | | | | | | | | | Oops. We need to estalish/remove the connection in the setup/teardown, else it messes with the fixtures.
* | Fix rake test_sqlite3_memJon Leighton2013-06-282-11/+7
| | | | | | | | Clearly nobody uses this except me. It's fast people!
* | Merge pull request #11153 from strzalek/remove-ar-deprecated-findersJon Leighton2013-06-287-637/+7
|\ \ | | | | | | Remove depreacted finders
| * | Remove depreacted findersŁukasz Strzałkowski2013-06-287-637/+7
| | | | | | | | | | | | They were deprecated in 4.0, planned to remove in 4.1
* | | Fix indentationAkira Matsuda2013-06-281-1/+1
| | |
* | | Remove deprecated attr_protected/accessibleŁukasz Strzałkowski2013-06-271-1/+0
|/ / | | | | | | Rails 4.0 has removed attr_protected and attr_accessible feature in favor of Strong Parameters.
* | activerecord/examples/simple.rb use master branch activesupport gemtumayun2013-06-271-1/+1
| |
* | fix activerecord/examples/performance.rb#L101 syntax errortumayun2013-06-271-1/+1
| |
* | Moving the `pluck` and `ids` methods to their own delegate line.wangjohn2013-06-251-8/+9
| | | | | | | | | | | | | | | | These two methods aren't really statistical helper methods and don't really belong in any other group which is being delegated for querying, so I'm moving them to their own group of methods. I've also changed the `:to => :all` hash syntax to `to: :all`.
* | Fix @tenderlove's name in changelog :sparkles:Carlos Antonio da Silva2013-06-261-2/+2
| | | | | | | | [ci skip]
* | Merge pull request #10730 from ↵Carlos Antonio da Silva2013-06-251-8/+9
|\ \ | | | | | | | | | | | | tkhr/add_test_for_AR__CounterCache#update_counters Add test for AR::CounterCache.update_counters
| * | Refactor AR's counter_cache_test.rb testTakehiro Adachi2013-05-231-8/+3
| | |
| * | Add test for AR::CounterCache.update_countersTakehiro Adachi2013-05-231-0/+6
| | |
* | | Add changelog entry for database tasks removal #10853 [ci skip]Carlos Antonio da Silva2013-06-251-0/+4
| | |
* | | Merge pull request #10853 from kennyj/deprecated-database_tasksCarlos Antonio da Silva2013-06-257-433/+0
|\ \ \ | | | | | | | | Remove Oracle / Sqlserver / Firebird database tasks were deprecated since 4.0.
| * | | Remove FirebirdDatabaseTasks was deprecated, because this was provided by ↵kennyj2013-06-053-158/+0
| | | | | | | | | | | | | | | | 3rd-party.
| * | | Remove SqlseverDatabaseTasks was deprecated, because this was provided by ↵kennyj2013-06-053-136/+0
| | | | | | | | | | | | | | | | 3rd-party.
| * | | Remove OracleDatabaseTasks was deprecated, because this was provided by ↵kennyj2013-06-053-139/+0
| | | | | | | | | | | | | | | | 3rd-party.
* | | | Merge pull request #10992 from Empact/find-each-enumeratorCarlos Antonio da Silva2013-06-253-2/+36
|\ \ \ \ | | | | | | | | | | | | | | | When .find_each is called without a block, return an Enumerator.
| * | | | When .find_each is called without a block, return an Enumerator.Ben Woosley2013-06-193-2/+36
| | | | | | | | | | | | | | | | | | | | This lets us do things like call: .find_each.with_index
* | | | | Merge pull request #10993 from Empact/result-each-enumeratorCarlos Antonio da Silva2013-06-253-1/+42
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Change Result#each to return an Enumerator when called without a block.
| * | | | | Change Result#each to return an Enumerator when called without a block.Ben Woosley2013-06-183-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | As with #10992, this lets us call #with_index, etc on the results.
* | | | | | Merge pull request #11046 from arunagw/verbose_mode_onCarlos Antonio da Silva2013-06-251-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Verbose mode on when running tests
| * | | | | | Adding verbose in isolated test.Arun Agrawal2013-06-211-1/+1
| | | | | | |
* | | | | | | removed unnecessary mapping for on optionsAnton Kalyaev2013-06-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right before that in `assert_valid_transaction_action` method we make sure that `options[:on]` contains values from `ACTIONS` array (`[:create, :destroy, :update]`) and nothing more (i.e. it could not contain strings or something else, otherwise the error is raised). Also I've polished some docs.
* | | | | | | remove trailing whitespace from Active Record CHANGELOGYves Senn2013-06-251-1/+1
| | | | | | |
* | | | | | | Fix `another_contract` not being used warningVipul A M2013-06-241-1/+1
| | | | | | |
* | | | | | | test-case to prevent regressions described in #10901.Jared Armstrong2013-06-241-0/+27
| | | | | | |
* | | | | | | replace all older rocket sign to new ":" from examples of active record and ↵Rajarshi Das2013-06-242-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | active models
* | | | | | | Setup env and seed_loaded for DatabaseTasks outside load_configPiotr Sarnacki2013-06-231-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Those vars can be used in tasks, which not call load_config.
* | | | | | | Change a way ActiveRecord's config is prepared for rake tasksPiotr Sarnacki2013-06-231-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit d1d7c86d0 I moved setting migrations paths into activerecord's railtie to remove Rails dependency on databases.rake. However, it introduced a regression, ENGINE_PATH was not available at the moment, so engine's migrations where not added properly to paths. Fix was added at 97a4a771, but it changes a way things work from using ENGINE_PATH to APP_RAKEFILE. Additionally, the config runs when the code loads, while previously it ran in the db:load_config rake task In order to make it more in pair with original version this commit changes the config to run only on load_config task. This code uses the fact that defining a task in rake does not overwrite, but only appends. It also allows to get back to checking for ENGINE_PATH
* | | | | | | test-case to prevent regressions on `Association#build` with an Array.Yves Senn2013-06-221-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #11026
* | | | | | | flatten merged join_values before building the joinsNeeraj Singh2013-06-223-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #10669 While joining_values special treatment is given to string values. By flattening the array it ensures that string values are detected as strings and not arrays.
* | | | | | | do not load all child records for inverse caseNeeraj Singh2013-06-213-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | currently `post.comments.find(Comment.first.id)` would load all comments for the given post to set the inverse association. This has a huge performance penalty. Because if post has 100k records and all these 100k records would be loaded in memory even though the comment id was supplied. Fix is to use in-memory records only if loaded? is true. Otherwise load the records using full sql. Fixes #10509
* | | | | | | Merge pull request #11049 from neerajdotname/no-need-of-large-numberJon Leighton2013-06-211-1/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | fix bad test by making number that fits for integer
| * | | | | | | fix bad test by making number that fits for integerNeeraj Singh2013-06-211-1/+5
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR https://github.com/rails/rails/pull/10566 had to be reverted because after applying the fix test "test_raise_record_not_found_error_when_invalid_ids_are_passed" started failing. In this test invalid_id is being assigned a really large number which was causing following failure when PR #10566 was applied. ``` RangeError: bignum too big to convert into `long long' SELECT `interests`.* FROM `interests` WHERE `interests`.`man_id` = ? AND `interests`.`id` = ? LIMIT 1 [["man_id", 970345987], ["id", 2394823094892348920348523452345]] ``` This test is not failing in master because when test code `man.interests.find(invalid_id)` is executed then interests are fully loaded in memory and no database query is executed. After PR #10566 was merged then test code `man.interests.find(invalid_id)` started executing sql query and hence the error. In case someone is wondering why the second part of query is not failing, then that's because the actual query does not require any variable substituation where the number is large. In that case the sql generate is following. ``` SELECT `interests`.* FROM `interests` WHERE `interests`.`man_id` = ? AND `interests`.`id` IN (8432342, 2390102913, 2453245234523452) [["man_id", 970345987]] ```
* | | | | | | Merge pull request #11040 from satococoa/fix-create_join_table-documentCarlos Antonio da Silva2013-06-211-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix documents for create_join_table [ci skip]
| * | | | | | | Fix documents for create_join_tableSatoshi Ebisawa2013-06-211-2/+2
| |/ / / / / /
* / / / / / / Saying gemcutter => rubygems [ci skip]Arun Agrawal2013-06-211-1/+1
|/ / / / / /
* | | | | / `inspect` for AR model classes does not initiate a new connection.Yves Senn2013-06-203-0/+33
| |_|_|_|/ |/| | | |
* | | | | add forgotten CHANGELOG entry for #10884.Yves Senn2013-06-191-0/+5
| | | | |
* | | | | Merge pull request #10884 from dmarkow/pg_fix_default_quotesYves Senn2013-06-192-1/+26
|\ \ \ \ \ | | | | | | | | | | | | Handle single quotes in PostgreSQL default column values
| * | | | | Handle single quotes in PostgreSQL default column valuesDylan Markow2013-06-192-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PostgreSQL escapes single quotes by using an additional single quote. When Rails queries the column information, PostgreSQL returns the default values with the escaped single quotes. #extract_value_from_default now converts these to one single quote each. Fixes #10881.