| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, freezing a cloned ActiveRecord object froze the original
too. By cloning `@attributes` before freezing, we prevent cloned objects
(which in Ruby share state of ivars) from being effected by `#freeze`.
Resolves issue #4936, which has further information on this issue, as
well as steps to reproduce.
* Add a test case for `#freeze` not causing `cloned.frozen?` to be true.
* Clone @attributes before freezing in `ActiveRecord::Core`, then
reassign the cloned, frozen hash to the frozen model's `@attributes`
ivar.
/cc @steveklabnik
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 521035af530482d6d9ad2dae568eaeb0ab188e1c, reversing
changes made to 222011dbee842bbc60d3aaaa3145356b90a30fd1.
Reason: This broke the tests
|
| | | |
|
|\ \ \
| | | |
| | | | |
DB with postgres string array column doesn't load fixtures well
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix subject-verb agreement in error msg (and other grammar stuff)
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
associations
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Closes #10198.
|
| | | | |
| | | | |
| | | | |
| | | | | |
bit column in Postgresql, because solving ambiguity.
|
| | | | | |
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
db:test:load task should be favored over db:test:load_schema, because it
checks for chosen format (ActiveRecord::Base.schema_format).
closes #10227
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts commit cdd293cb963b895ff580eb20d10f5d56ecb3d447.
Reason: This wasn't properly fix.
|
|\ \ \ \
| | | | |
| | | | | |
AR postgres binary bug fix
|
| | | | | |
|
| | |_|/
| |/| |
| | | |
| | | | |
this shows a problem with nil values
|
|/ / / |
|
|\ \ \ |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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).
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* 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.
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
guides/source/action_mailer_basics.md
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
[ci skip]
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
yahonda/test_relation_merging_with_merged_joins_oracle
Address ORA-00979: not a GROUP BY expression error
|
| | | | | |
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | | |
warning: `*' interpreted as argument prefix
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Statement cache
Conflicts:
activerecord/CHANGELOG.md
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Simple improvements
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
| | | | |
| | | | |
| | | | |
| | | | | |
PerThreadRegistry module.
|
| | | | | |
|