| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit fixes a regression bug in which counter_cache columns
were not being updated correctly when newly created records were
being pushed into an assocation. EG:
# this was fine
@post.comment.create!
# this was fine
@comment = Comment.first
@post.comments << @comment
# this would not update counters
@post.comments << Comment.create!
|
|\ \
| | |
| | | |
fix typos [ci skip]
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Object#respond_to? returns singletons and thus we inherit that contract.
The implementation of the predicate is good, but the test is only
checking boolean semantics, which in this case is not enough.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The entry is basically copy & paste of the commit message, but the CHANGELOG
has a different purpose than Git history, it just communicates what is new:
* No need to explain why did the bug happen (unless it is truly relevant).
* No need to explain how was the bug fixed.
* Whether the user gives new names to columns does not really matter, use of
select to cherry-pick a column for example also presented that behaviour.
Non-selected attributes are the key, either because they were not included
in the selected list, or because they were but with a different alias.
* In the case of an attribute alias, what you really want to depict is that
respond_to? returns false for the original attribute name.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fixes #4208
If a query selects only a few columns and gives custom names to
those columns then respond_to? was returning true for the non
selected columns. However calling those non selected columns
raises exception.
post = Post.select("'title' as post_title").first
In the above case when `post.body` is invoked then an exception is
raised since `body` attribute is not selected. Howevere `respond_to?`
did not behave correctly.
pos.respond_to?(:body) #=> true
Reason was that Active Record calls `super` to pass the call to
Active Model and all the columns are defined on Active Model.
Fix is to actually check if the data returned from the db contains
the data for column in question.
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing
changes made to d098e1c24bc145e0cc14532348436e14dc46d375.
Reason: it broke the mysql build
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fixes bug introduced by #3329
These are the conditions necessary to reproduce the bug:
- For an association, autosave => true.
- An association record is being destroyed
- A new association record is being created.
- There is a unique index one of the association's fields.
- The record being created has the same value as the record being
destroyed on the indexed field.
Before, the deletion of records was postponed until after all
insertions/saves. Therefore the new record with the identical value in
the indexed field caused a non-unique value error to be thrown at the database
level.
With this fix, the deletions happen first, before the insertions/saves.
Therefore the record with the duplicate value is gone from the database
before the new record is created, thereby avoiding the non-uniuqe value
error.
|
|\ \
| | |
| | | |
Postgresql array columns don't properly escape single quote strings when loading fixtures
|
| | |
| | |
| | |
| | | |
- A string in an array of strings that has a quote char (') needs to have that quote char escaped if the array is getting wrapped in quote chars.
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Support transactions in Migrator.run
Conflicts:
activerecord/CHANGELOG.md
|
| | |/
| |/| |
|
|\ \ \
| |_|/
|/| |
| | |
| | | |
calebthompson/ct-fix-freeze-freezing-cloned-models
Fix freeze applying to cloned objects
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|