| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Fix AS::Callbacks raising an error when `:run` callback is defined.
|
| |
| |
| |
| | |
This reverts commit 796cab45561fce268aa74e6587cdb9cae3bb243e.
|
| | |
|
|\ \
| | |
| | | |
Require Module#delegate core ext in ActiveModel::Naming
|
| | | |
|
|\ \ \
| | | |
| | | | |
Simplify and alias ActiveModel::Errors methods where possible
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As demonstrated by #19570, this option is severely limited, and
satisfies an extremely specific use case. Realistically, there's not
much reason for this option to exist. Its functionality can be trivially
replicated with a normal Ruby method. Let's deprecate this option, in
favor of the simpler solution.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rails 5.0 changes to ActiveModel::Errors include addition of `details`
that also accidentally changed the return value of `delete`. Since
there was no test for that behavior it went unnoticed. This commit
adds a test and fixes the regression.
Small improvements to comments have also been made. Since `get` is
getting deprecated it is better to use `[]` in other methods' code
examples. Also, in the module usage example, `def Person.method`
was replaced with a more commonly used `def self.method` code style.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Deprecation messages in ActiveModel::Errors are using String#squish
from ActiveSupport but were not explicitly requiring it, causing failures
when used outside rails.
|
| |/
|/| |
|
|\ \
| | |
| | | |
Move `UnknownAttributeError` to a more sane namespace
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The name `ActiveModel::AttributeAssignment::UnknownAttributeError` is
too implementation specific so let's move the constant directly under
the ActiveModel namespace.
Also since this constant used to be under the ActiveRecord namespace, to
make the upgrade path easier, let's avoid raising the former constant
when we deal with this error on the Active Record side.
|
|/ /
| |
| |
| | |
parts out of active_support.
|
| |
| |
| |
| |
| |
| | |
Previously, calling `User.model_name.to_json` would result in an infinite
recursion as `.model_name` inherited its `.as_json` behavior from Object. This
patch fixes that unexpected behavior by delegating `.as_json` to :name.
|
|/
|
|
| |
ActiveModel::Errors
|
| |
|
|\
| |
| | |
fix mistype in doc about \z regexp
|
| |
| |
| |
| | |
replace \Z with regular \z
|
| | |
|
|\ \
| | |
| | |
| | | |
Deprecate `ActiveModel::Errors` `add_on_empty` and `add_on_blank` methods
|
|/ /
| |
| |
| | |
without replacement.
|
|\ \
| | |
| | |
| | | |
Deprecate `ActiveModel::Errors` `get`, `set` and `[]=` methods.
|
| | |
| | |
| | |
| | | |
They have inconsistent behaviour currently.
|
| | | |
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Grammar fixes
- Add doc for changes_include?
- implemntations => implementations
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
Allow symbol as values for `tokenizer` of `LengthValidator`
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Better docs for AM::Lint::Tests
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit changes the original documentation of ActiveModel::Lint::Tests
introduced in dbf20c2d to focus less on *why* the tests exist and more on
*what* the tests do.
For instance, `test_to_key` was documented as:
> Returns an Enumerable of all (primary) key attributes...
whereas `test_to_key` is simply a test meant to *fail* or *pass*, and the
documentation above refers to `to_key`.
[ci skip]
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The existing example seems somewhat forced: is it realistic
to have a model that accepts state in its initializer but
considers it has not been changed? By allowing state changes
to happen only via accessors it seems more natural that new
instances are considered to be unchanged (as they are in AR).
[ci skip]
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As per Rails general coding conventions. Related to #18794 [ci skip]
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
is wrong.
Added simple initialize and made use of Person.new instead of Person.find_by to clarify the docs.
[ci skip]
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Fixes #17621. This 5 year old (or older) issue causes validations to fire
when a parent record has `validate: false` option and a child record is
saved. It's not the responsibility of the model to validate an
associated object unless the object was created or modified by the
parent.
Clean up tests related to validations
`assert_nothing_raised` is not benefiting us in these tests
Corrected spelling of "respects"
It's better to use `assert_not_operator` over `assert !r.valid`
|
| |_|_|/ /
|/| | | |
| | | | |
| | | | |
| | | | | |
The new association error belongs to Active Record, not Active Model.
See #18700 for reference.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes #18696.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fixed duplicating ActiveModel::Errors#details
|
| | | | | | |
|
|/ / / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Minor style changes across the board. Changed an alias to an explicit
method declaration, since the alias will not be documented otherwise.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`ActiveModel::AttributesAssignment`
Allows to use it for any object as an includable module.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add ActiveModel::Errors#codes
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
To be able to return type of validator, one can now call `details`
on Errors instance:
```ruby
class User < ActiveRecord::Base
validates :name, presence: true
end
```
```ruby
user = User.new; user.valid?; user.errors.details
=> {name: [{error: :blank}]}
```
|
|/ / / / / |
|
| |_|/ /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When an attribute is assigned, we determine if it was already marked as
changed so we can determine if we need to clear the changes, or mark it
as changed. Since this only affects the `attributes_changed_by_setter`
hash, in-place changes are irrelevant to this process. Since calculating
in-place changes can be expensive, we can just skip it here.
I also added a test for the only edge case I could think of that would
be affected by this change.
|
|\ \ \ \
| | | | |
| | | | | |
allow '1' or true for acceptance validation.
|