| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
We always want a linked list back to the root node.
|
| |
|
|
|
|
| |
The reflections hash is supposed to be private, so let's use the API.
|
| |
|
| |
|
|
|
|
|
| |
We always set the join type immediately after construction, just make it
part of the constructor and we can skip that step
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
guides/source/action_mailer_basics.md
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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 eagerly loading associations without primary keys
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
armstrjare/active_record_relation_keep_association_join_context_on_merge"
This reverts commit dcd04e76179611a9db28c9e391aa7d6c2a5b046a, reversing
changes made to 58a49875df63729f07a9a81d1ee349087d258df5.
|
|/ |
|
| |
|
|
|
|
| |
an abstract superclass. Fixes #552.
|
| |
|
|
|
|
| |
method to make it easy to change/override (requested by Ernie Miller so that MetaWhere can add to it easily)
|
| |
|
|
|
|
| |
not in ON constraints because postgres requires that the table has been joined before the condition references it.
|
|
|
|
| |
JoinDependency::JoinAssociation into a JoinHelper module
|
| |
|
|
|
|
| |
Reflection#chain and Reflection#options as they now no longer relate solely to through associations.
|
| |
|
|
|
|
| |
JoinDependency::JoinAssociation and into the reflection instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Conflicts:
activerecord/CHANGELOG
activerecord/lib/active_record/association_preload.rb
activerecord/lib/active_record/associations.rb
activerecord/lib/active_record/associations/class_methods/join_dependency.rb
activerecord/lib/active_record/associations/class_methods/join_dependency/join_association.rb
activerecord/lib/active_record/associations/has_many_association.rb
activerecord/lib/active_record/associations/has_many_through_association.rb
activerecord/lib/active_record/associations/has_one_association.rb
activerecord/lib/active_record/associations/has_one_through_association.rb
activerecord/lib/active_record/associations/through_association_scope.rb
activerecord/lib/active_record/reflection.rb
activerecord/test/cases/associations/has_many_through_associations_test.rb
activerecord/test/cases/associations/has_one_through_associations_test.rb
activerecord/test/cases/reflection_test.rb
activerecord/test/cases/relations_test.rb
activerecord/test/fixtures/memberships.yml
activerecord/test/models/categorization.rb
activerecord/test/models/category.rb
activerecord/test/models/member.rb
activerecord/test/models/reference.rb
activerecord/test/models/tagging.rb
|
|
ActiveRecord::Associations::ClassMethods to just ActiveRecord::Associations
|