| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |/ / / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Mostly delegation to start, but we can start moving a lot of behavior in
bulk to this object.
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Don't include inheritance column in the through_scope_attributes
|
| | |_|/ / / / / /
| |/| | | | | | | |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
namespaced model
Now the following case will work fine
class Tag < ActiveRecord::Base
end
class Publisher::Article < ActiveRecord::Base
has_and_belongs_to_many :tags
end
Fixes #15761
|
| |/ / / / / / /
|/| | | | | | | |
|
|\ \ \ \ \ \ \ \
| |_|_|/ / / / /
|/| | | | | | | |
Don't type cast the default on the column
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
If we want to have type decorators mess with the attribute, but not the
column, we need to stop type casting on the column. Where possible, we
changed the tests to test the value of `column_defaults`, which is
public API. `Column#default` is not.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Also takes a step towards supporting types which use a character other
than ',' for the delimiter (`box` is the only built in type for which
this is the case)
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | | |
Move pg array database type casting to the Array type
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
The case where we have a column object, but don't have a type cast
method involves type casting the default value when changing the schema.
We get one of the column definition structs instead. That is a case that
I'm trying to remove overall, but in the short term, we can achieve the
same behavior without needing to pass the adapter to the array type by
creating a fake type that proxies to the adapter.
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Don't assume that Hstore columns have always changed
|
| |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
HStore columns come back from the database separated by a comma and a
space, not just a comma. We need to mirror that behavior since we
compare the two values.
Also adds a regression test against JSON to ensure we don't have the
same bug there.
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
We no longer need to "init changed attributes" from the initializer,
either, as there is no longer a case where a given value would differ
from the default, but would not already be marked as changed.
|
|/ / / / / / |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This refactoring revealed the need for another form of decoration, which
takes a proc to select which it applies to (There's a *lot* of cases
where this form can be used). To avoid duplication, we can re-implement
the old decoration in terms of the proc-based decoration.
The reason we're `instance_exec`ing the matcher is for cases such as
time zone aware attributes, where a decorator is defined in a parent
class, and a method called in the matcher is overridden by a child
class. The matcher will close over the parent, and evaluate in its
context, which is not the behavior we want.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Refactor application of type decorators into an object
|
| | | | | | | |
|
|/ / / / / / |
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Skip migration check if adapter doesn't support it
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
[ci skip] /mysql/i -> MySQL, Spell correct in continuation to #15555
|
| | |_|_|_|/ /
| |/| | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
[ci skip] Use `an` for SQL
|
| |/ / / / / / |
|
| |_|/ / / /
|/| | | | |
| | | | | |
| | | | | | |
to "without replacement"
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
We've stopped using it internally, in favor of polymorphism. So should
you!
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes #15705.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Remove `serialized?` from the type interface
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Open extension point for defining options in build_through_record
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This fixes #15496
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Remove unused `method_missing` definition
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | | |
We always define attribute methods in the constructor or in `init_with`.
|
|\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | | |
prevent bad automatic inverse_of association
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
reflecting on wrong association
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
member = Member.new(club: Club.new)
member.save!
Before:
member.current_membership.club_id # => nil
After:
member.current_membership.club_id # => club's id
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Detect in-place changes on mutable AR attributes
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
We have several mutable types on Active Record now. (Serialized, JSON,
HStore). We need to be able to detect if these have been modified in
place.
|
|\ \ \ \ \ \ \ \
| |_|_|/ / / / /
|/| | | | | | | |
Remove unused column types override
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
variables [ci skip]
Thanks to @matthewd for the excellent feedback! :heart:
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
skip]"
This partially reverts commit 1a203d5e07f639332880099fab610b886b1742fc.
Reason: It was committed by accident
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Ensure we always define attribute methods
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Introduce an Attribute object to handle the type casting dance
|