aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-04-117-8/+19
|\ | | | | | | | | Conflicts: guides/source/action_mailer_basics.md
| * JoinPart is no longer an abstract classNeeraj Singh2013-04-081-1/+1
| |
| * update ActiveRecord::AttributeMethods::Serialization documentation [ci skip]Francesco Rodriguez2013-04-041-0/+7
| |
| * mark ReversibleBlockHelper as :nodoc: [ci skip]Francesco Rodriguez2013-04-041-1/+1
| |
| * mark relation mutator as :nodoc: [ci skip]Francesco Rodriguez2013-04-021-2/+1
| |
| * minor copy editingNeeraj Singh2013-03-303-4/+9
| |
* | Switched to new naming conventionsNoemj2013-04-111-1/+1
| | | | | | | | [ci skip]
* | Remove warningCarlos Antonio da Silva2013-04-101-2/+2
| | | | | | | | warning: `*' interpreted as argument prefix
* | Merge pull request #10152 from Noemj/statement_cacheRafael Mendonça França2013-04-102-0/+27
|\ \ | | | | | | | | | | | | | | | | | | Statement cache Conflicts: activerecord/CHANGELOG.md
| * | Added statement cacheNoemj2013-04-102-0/+27
| | |
* | | Merge pull request #10168 from neerajdotname/simple_improvementsRafael Mendonça França2013-04-103-5/+39
|\ \ \ | | | | | | | | Simple improvements
| * | | converge three lines into oneNeeraj Singh2013-04-101-3/+1
| | | |
| * | | rdoc for some of the methods in JoinDependencyNeeraj Singh2013-04-102-0/+36
| | | |
| * | | remove_duplicate_results! should be protectedNeeraj Singh2013-04-101-2/+2
| | | |
* | | | Revert "Merge pull request #6226 from gnufied/master"Rafael Mendonça França2013-04-101-2/+6
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9bf1a0db4acbbf9e8e6f707250269185224e7efe, reversing changes made to fed97091b9546d369a240d10b184793d49247dd3. Conflicts: activerecord/test/cases/transaction_callbacks_test.rb Reason: This fix introduces another issue described at #8937, so we are reverting it to restore the behavior of 3-2-stable. We will fix both issues when we come out with a better solution
* | | While merging relations preserve context for joinsJared Armstrong and Neeraj Singh2013-04-102-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #3002. Also see #5494. ``` class Comment < ActiveRecord::Base belongs_to :post end class Author < ActiveRecord::Base has_many :posts end class Post < ActiveRecord::Base belongs_to :author has_many :comments end ``` `Comment.joins(:post).merge(Post.joins(:author).merge(Author.where(:name => "Joe Blogs"))).all` would fail with `ActiveRecord::ConfigurationError: Association named 'author' was not found on Comment`. It is failing because `all` is being called on relation which looks like this after all the merging: `{:joins=>[:post, :author], :where=>[#<Arel::Nodes::Equality: ....}`. In this relation all the context that `Post` was joined with `Author` is lost and hence the error that `author` was not found on `Comment`. Ths solution is to build JoinAssociation when two relations with join information are being merged. And later while building the arel use the previously built `JoinAssociation` record in `JoinDependency#graft` to build the right from clause. Thanks to Jared Armstrong (https://github.com/armstrjare) for most of the work. I ported it to make it compatible with new code base.
* | | Changed the ScopeRegistry and the InstrumentationRegistry to use thewangjohn2013-04-091-6/+6
| | | | | | | | | | | | PerThreadRegistry module.
* | | Created a runtime registry for thread local variables in active record.wangjohn2013-04-095-6/+39
| | |
* | | Merge pull request #10142 from wangjohn/grouping_thread_localsRafael Mendonça França2013-04-092-9/+16
|\ \ \ | | | | | | | | Delegating the value getter and setters in the ScopeRegistry
| * | | Delegating the value getter and setters in the ScopeRegistry to thewangjohn2013-04-082-9/+16
| | | | | | | | | | | | | | | | current ScopeRegister object.
* | | | changed variable name active_record => base_klassNeeraj Singh2013-04-094-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current code stores the klass name in active_record and this is used throughout. While reviewing the code time and again I had the mental picture of active_record being an instance of a klass. However here the actual klass is being stored in @active_record. Secondly at two different places while referring to @active_record the comment refers to it as base klass. All this points to active_record being not the best variable name. So I thought it is better to replace active_record with base_klass. This change is confined to JoinDependency, JoinBase, JoinPart and JoinAssociation - all joining related work.
* | | | fix AP warning; remove unused variableVipul A M2013-04-091-1/+1
|/ / /
* | | Grouping thread locals in the ActiveRecord scopes so that thewangjohn2013-04-082-4/+55
| | | | | | | | | | | | | | | current_scope and ignore_default_scope locals are brought together under a registry object.
* | | Avoid iterating over records hash when not necessaryCarlos Antonio da Silva2013-04-071-2/+6
| | | | | | | | | | | | | | | | | | If the reflection scope is not flagged with distinct value, there is no need to iterate over the records, so we avoid that by doing the check before iterating rather than inside the iteration block.
* | | each to each_value; remove unused varsVipul A M2013-04-071-1/+1
| | |
* | | Added a bang to the end of +raise_nested_attributes_record_not_found+wangjohn2013-04-061-3/+3
| | | | | | | | | | | | method to signify an exception possibly being raised.
* | | Deprecate ActiveRecord#Base.default_scopes?Agis-2013-04-061-1/+10
| | | | | | | | | | | | See #10107.
* | | Bring back ActiveRecord::Base#connection_handler removed by mistake on b37399abRafael Mendonça França2013-04-061-0/+4
| | |
* | | Merge branch 'master' into railstestAaron Patterson2013-04-0513-31/+71
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: (44 commits) Improve the changelog entry [ci skip] Fix explicit names on multiple file fields Correctly parse bigint defaults in PostgreSQL Move changelog to the top [ci skip] Fix indent and remove extra white spaces Fix scope chaining + STI failing test for #9869 Improve `belongs_to touch: true` timestamp test Sort modules in alphabetical order. Avoid an attempt to fetch old record when id was not present in touch callback Use the correct pk field from the reflected class to find the old record Refactor mail_to to not generate intermediate hashes when adding href Ensure mail_to helper does not modify the given html options hash Use inspect when writing the foreign key from the reflection Use a space after the comment sign when showing the result of commands Exclude template files for rdoc API [ci skip] template should have generic name use | to have more intent revealing code Revert "Merge pull request #10034 from benofsky/fix_skipping_object_callback_filters" stop depending on callbacks ... Conflicts: railties/test/application/rake_test.rb
| * \ \ Merge pull request #10098 from subwindow/postgres_dump_bigint_defaultRafael Mendonça França2013-04-051-1/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correctly parse bigint defaults in PostgreSQL Conflicts: activerecord/CHANGELOG.md
| | * | | Correctly parse bigint defaults in PostgreSQLErik Peterson2013-04-051-1/+1
| | | | |
| * | | | Merge pull request #9996 from mikz/masterJon Leighton2013-04-051-0/+1
| |\ \ \ \ | | | | | | | | | | | | Association with inverse_of does not set the parent in association building block
| | * | | | fix inverse_of association in block of new childMichal Cichra2013-04-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes inconsistency when building children of association which has inverse_of set properly. When creating new association object with a block: parent.association.build do |child| child.parent.equal?(parent) # false end So the block the `child.parent` did not point to the same object. But when the object is created it points to same instance: child = parent.association.build child.parent.equal?(parent) # true
| * | | | | Merge pull request #10058 from jamesgolick/masterJon Leighton2013-04-052-5/+3
| |\ \ \ \ \ | | | | | | | | | | | | | | Avoid calling define_method in CollectionProxy#scope
| | * | | | | Refactor CollectionProxy#scope to avoid calling #extend.James Golick2013-04-022-5/+3
| | | | | | |
| * | | | | | Fix scope chaining + STIJon Leighton2013-04-052-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See #9869 and #9929. The problem arises from the following example: class Project < ActiveRecord::Base scope :completed, -> { where completed: true } end class MajorProject < Project end When calling: MajorProject.where(tasks_count: 10).completed This expands to: MajorProject.where(tasks_count: 10).scoping { MajorProject.completed } However the lambda for the `completed` scope is defined on Project. This means that when it is called, `self` is Project rather than MajorProject. So it expands to: MajorProject.where(tasks_count: 10).scoping { Project.where(completed: true) } Since the scoping was applied on MajorProject, and not Project, this fails to apply the tasks_count condition. The solution is to make scoping apply across STI classes. I am slightly concerned about the possible side-effects of this, but no tests fail and it seems ok. I guess we'll see.
| * | | | | | Sort modules in alphabetical order.Shunsuke Osa2013-04-051-2/+2
| | |_|/ / / | |/| | | |
| * | | | | Avoid an attempt to fetch old record when id was not present in touch callbackCarlos Antonio da Silva2013-04-041-7/+7
| | | | | |
| * | | | | Use the correct pk field from the reflected class to find the old recordCarlos Antonio da Silva2013-04-041-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation was using the source class foreign key field instead of the reflected primary key one to find the old record. For instance, for this scenario class Bulb < ActiveRecord::Base belongs_to :car, :touch => true end class Car < ActiveRecord::Base has_many :bulbs end the current implementation was trying to do this query: Car.where(car_id: X).first where we should be doing this query: Car.where(id: X).first This should hopefully fix the build.
| * | | | | Use inspect when writing the foreign key from the reflectionAndrew White2013-04-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we don't use inspect inside the class_eval block then the foreign key is written without quotes causing us to fetch the foreign key value and not the column name.
| * | | | | Use a space after the comment sign when showing the result of commandsCarlos Antonio da Silva2013-04-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://guides.rubyonrails.org/api_documentation_guidelines.html#example-code [ci skip]
| * | | | | Merge pull request #10094 from neerajdotname/fix2Carlos Antonio da Silva2013-04-042-3/+21
| |\ \ \ \ \ | | | | | | | | | | | | | | Collection of small fixes. Check individual commits for background.
| | * | | | | use | to have more intent revealing codeNeeraj Singh2013-04-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | thanks to @egilburg for suggestion
| | * | | | | expanded rdoc for chain and reflection_namesNeeraj Singh2013-04-041-2/+20
| | | | | | |
| * | | | | | stop depending on callbacksAaron Patterson2013-04-041-6/+12
| |/ / / / /
| * | | | | Merge pull request #10087 from neerajdotname/10016Carlos Antonio da Silva2013-04-041-0/+1
| |\ \ \ \ \ | | | | | | | | | | | | | | has_many through obeys order on through association
| | * | | | | has_many through obeys order on through associationNeeraj Singh2013-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #10016
| * | | | | | Merge pull request #10088 from neerajdotname/fixes1Rafael Mendonça França2013-04-043-5/+15
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | | minor fixes including variable name change and expanded rdoc
| | * | | | | expanded rdoc on source_reflection methodNeeraj Singh2013-04-041-0/+10
| | | | | | |
| | * | | | | show name of the klass that has missing associationNeeraj Singh2013-04-021-1/+1
| | | | | | |