| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently `count(:all)` with `distinct` doesn't work correctly because
SELECT list is always replaced to `*` or primary key in that case even
if having custom SELECT list.
And also, PostgreSQL has a limitation that ORDER BY expressions must
appear in select list for SELECT DISTINCT.
Therefore, we should not replace custom SELECT list when using
`count(:all)` with `distinct`.
Closes #31277.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
yhirano55/fix_validation_callbacks_on_multiple_context_in_active_model
Bugfix: validation callbacks on multiple context
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I found a bug that validation callbacks don't fire on multiple context.
So I've fixed it.
Example:
```ruby
class Dog
include ActiveModel::Validations
include ActiveModel::Validations::Callbacks
attr_accessor :history
def initialize
@history = []
end
before_validation :set_before_validation_on_a, on: :a
before_validation :set_before_validation_on_b, on: :b
after_validation :set_after_validation_on_a, on: :a
after_validation :set_after_validation_on_b, on: :b
def set_before_validation_on_a; history << "before_validation on a"; end
def set_before_validation_on_b; history << "before_validation on b"; end
def set_after_validation_on_a; history << "after_validation on a" ; end
def set_after_validation_on_b; history << "after_validation on b" ; end
end
```
Before:
```
d = Dog.new
d.valid?([:a, :b])
d.history # []
```
After:
```
d = Dog.new
d.valid?([:a, :b])
d.history # ["before_validation on a", "before_validation on b", "after_validation on a", "after_validation on b"]
```
|
| | | |
|
|\ \ \
| | | |
| | | | |
assert_nothing_raised not required here, we can assert directly for the actual result
|
| | | |
| | | |
| | | |
| | | | |
actual result
|
| | | |
| | | |
| | | |
| | | | |
Otherwise it will occur syntax error if primary key is a reserved word.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Arel doesn't support subselect generation for DELETE unlike UPDATE yet,
but we already have that generation in connection adapters. We can
simply use the subselect generated by that one.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`offset`
Most RDBMS (except SQLite) requires subselect for UPDATE with OFFSET,
but Arel doesn't support executable subselect generation for MySQL's
UPDATE yet. We need to use the subselect generated by the connection
adapter for now, it works well.
Fixes #30148.
|
|\ \ \ \
| | | | |
| | | | | |
[ci skip] Added Object Relational Mapping wiki link
|
|/ / / / |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
shioyama/reset_column_information_redefine_child_attribute_methods
Undefine attribute methods of descendants when resetting column information
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If we don't do this, then we end up with an inconsistent situation where
a parent class may e.g. reset column information, but child classes will
contine to see attribute methods as already generated, and thus not pick
up this new column (falling through to method_missing).
|
| | | | | |
|
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Specifying the `--dev` option is when want to change the codebase,
as it is not necessary to cache it.
Context: https://github.com/rails/rails/pull/31485#issuecomment-352452653
|
|\ \ \ \
| | | | |
| | | | | |
Raise an error only when `require_master_key` is specified
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To prevent errors from being raise in environments where credentials
is unnecessary.
Context: https://github.com/rails/rails/issues/31283#issuecomment-348801489
Fixes #31283
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Update new_framework_defaults_5_2.rb.tt
|
| | | | | |
| | | | | |
| | | | | | |
Be consistent in comments when mentioning AES.
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add headless browser support in api docs [ci skip]
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add `skip_bootsnap` option
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
`bootsnap` is a useful gem normally. However, `bootsnap` is unnecessary
when generating a Rails application to be used only for testing.
So I want to control whether use this or not by option.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Clarify docs for delegate :allow_nil option
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Don't include ellipsis in truncated digest output
|
| | |/ / / / / /
| |/| | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Using `truncate` to limit the length of the digest has the unwanted side
effect of adding an ellipsis when the input is longer than the limit.
Also:
- Don't instantiate a new object for every digest
- Rename the configuration option to `hash_digest_class`
- Update the CHANGELOG entry to describe how to use the feature
|
| |_|_|/ / / /
|/| | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Looks like it is failed due to datetime rounding. Related #23521.
https://travis-ci.org/rails/rails/jobs/317734560#L1980-L1984
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Previously table name qualified `*` is used in that case. If it is not
qualified with a table name, an ambiguous column name error will occur
when using JOINs.
|
| |_|_|_|/ /
|/| | | | |
| | | | | |
| | | | | | |
Thanks to @Datasnuten for the suggestion.
|
| | | | | | |
|
| |_|_|/ /
|/| | | | |
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | | |
Follow up of #31391
|
|\ \ \ \
| | | | |
| | | | | |
Update "Active Record Associations" guide [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Make all `ActiveRecord::Base.find` as link
- Remove redundant sentences
"It also adds the additional condition that the object must be in the collection."
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix Active Storage Overview guide [ci skip]
|
|/ / / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently, sidekiq integration test + Ruby 2.5.0-rc1 show exception as follows.
```
#<Thread:0x000000000670bec0@/home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/util.rb:23 run> terminated with exception (report_on_exception is true):
/home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `block in load_missing_constant': uninitialized constant Sidekiq::CLI (NameError)
from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `rescue in load_missing_constant'
from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:42:in `load_missing_constant'
from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:65:in `heartbeat'
from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:123:in `start_heartbeat'
```
https://travis-ci.org/rails/rails/jobs/317187279#L2152
The reason for this is that `Sidekiq::CLI` has not been loaded.
Sidekiq integration test launches a Sidekiq instance within
another Ruby process. In such a case, need to require 'sidekiq/cli'
in that launch code.
Ref: https://github.com/mperham/sidekiq/pull/3692#issuecomment-352032251
|
| | | | | |
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
[ci skip] Use :amazon, not :s3, so that guides reflect the current code
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The [template](https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/config/storage.yml.tt#L10)
that generates the `config/storage.yml` file has the Amazon S3 key specified as `:amazon`, not `:s3`.
The guides should reflect the nomenclature, given that every other service also
has the name of the company as the key (:google, :microsoft).
|
|\ \ \ \
| | | | |
| | | | | |
Modify test to correctly pass attributes hash
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These are using `remove_column` directly, not used `t` in
`change_table`.
|