aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* updated rdoc to reflect info about readonly attributeNeeraj Singh2013-04-171-0/+2
|
* without autosave option updated records not saveNeeraj Singh2013-04-171-1/+2
| | | | | Emphasizing that without autosave option only new records are saved and updated records are not saved
* Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-04-132-7/+7
|\
| * fix :nodoc: mark on AR::AttributeMethods::Serialization [ci skip]Francesco Rodriguez2013-04-121-2/+2
| |
| * minor edit on StatementCache documentation [ci skip]Francesco Rodriguez2013-04-121-1/+1
| |
| * Fix StatementCache docs format [ci skip]Francesco Rodriguez2013-04-111-5/+5
| |
* | hides the per thread registry instance, and caches singleton methodsXavier Noria2013-04-131-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | Existing code was delegating to the instance with delegate macro calls, or invoking the instance method to reach the object and call its instance methods. But the point is to have a clean class-level interface where the thread local instance is hidden in the implementation. References #11c6973. References #10198.
* | removes calls to AR::Runtime.instanceXavier Noria2013-04-133-6/+6
| | | | | | | | | | | | | | | | | | | | Registries have class-level accessors to write clean code, let's use them. This makes style uniform also with existing usage in ScopeRegistry and InstrumentationRegistry. If performance of the method_missing callback was ever considered to be a concern, then we should stop using it altogether and probably remove the callback. But while we have the feature we should use it.
* | simplifies the RDoc of AR::RuntimeRegistryXavier Noria2013-04-131-20/+5
| | | | | | | | | | | | | | The previous version was kind of duplicating the documentation of AS::PerThreadRegistry. Just say how to use it, the thread locals registry is know part of our vocabulary (though a pointer to Active Support is added for reference).
* | complete rewrite of the documentation of AS::PerThreadRegistryXavier Noria2013-04-131-1/+1
|/ | | | | | | | | | * It focuses on how to use it. * Removes some ambigueties in the original docs about whether the state is stored in the class. * Documents it provides class-level accessors via method_missing. * Documents that if the extended class has an initializer, it must accept no arguments.
* 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-101-0/+26
|\ \ | | | | | | | | | | | | | | | | | | Statement cache Conflicts: activerecord/CHANGELOG.md
| * | Added statement cacheNoemj2013-04-101-0/+26
| | |
* | | 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-094-6/+38
| | |
* | | 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-0512-29/+69
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
| * | | | | 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]