| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `merged_options` method is private and the output is never mutated.
Using this info we can get rid of the `dup` behavior. We can also
eliminate the `merge` call in the case where all the options being merged are the same.
Returned results are frozen as an extra layer of protection against
mutation.
Before
```
Total allocated: 741749 bytes (6642 objects)
```
After
```
Total allocated: 734039 bytes (6648 objects)
```
Diff
```
(741749 - 734039) / 741749.0 => ~ 1.0 %
```
If you don't feel comfortable modifying this method, we could rename it
and only use it internally.
|
|\
| |
| | |
Fix missing curly brace in documentation
|
|/
|
| |
This example was just missing a closing curly brace to complete the closure đ
|
|\
| |
| | |
Ignore psqlrc files when executing psql commands
|
| |
| |
| |
| |
| |
| | |
psqlrc files can affect the execution of commands in ways that can hold
up execution by blocking or otherwise cause unexpected side effects and
should best be ignored when using psql programmatically.
|
|\ \
| | |
| | | |
Correct spelling in "Contributing to Ruby on Rails" guide [ci skip]
|
|/ /
| |
| |
| |
| |
| | |
ambigity -> ambiguity
Related to #33891
|
|\ \
| | |
| | | |
Make sure `assert_enqueued_with()` & `assert_performed_with()` work reliably with hash arguments
|
| | |
| | |
| | |
| | | |
The test helpers now treat `{ a: 1, b: 2 }` and `{ b: 2, a: 1 }` as equals
|
|\ \ \
| | | |
| | | | |
Contributing to Ruby on Rails Guide: standardize git remote names [ci skip].
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | | |
Since #33875, Rails dropped supporting MySQL 5.1 which does not support
utf8mb4. We no longer need to use legacy utf8 (utf8mb3) conservatively.
|
|\ \ \
| | | |
| | | | |
CI against PostgreSQL 10
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Replace port number 5433 to 5432 (default value) which Active Record unit tests expect
- Restart PostgreSQL 10 service after changing port number
- PostgreSQL 10 is a addon for the current Travis CI. Installing
PostgreSQL 10 would cause longer CI to getting additional apt packages
Refer https://docs.travis-ci.com/user/database-setup/#PostgreSQL
- Use `sudo: required` for railties CI expecting PostgreSQL is up and running
|
|\ \ \ \
| | | | |
| | | | | |
Make a deep copy of the _default_attributes in column_defaults
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When column_defaults is called it calls `value` on each instance of
Attribute inside the _default_attributes set. Since value is memoized in
the Attribute instance and that Attribute instance is shared across all
instances of a model the next call to the default value will be memozied
not running the proc defined by the user.
Fixes #33031.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Update MySQL server version and character set in Rails Guide [skip ci]
|
| | |/ / /
| |/| | |
| | | | |
| | | | | |
Related to #33853
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fixed to RAILS_MASTER_KEY as a default env key for decrypting.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | | |
Fixes mistake left in https://github.com/rails/rails/pull/33521/files#diff-2a29095afcfe2c683b82a779a94c2208R59
and misunderstanding in https://github.com/rails/rails/commit/d69b04de0ff33237209afea6f6cac3ab27934908
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Make `ActiveRecord::Result#to_a` as alias to `ActiveRecord::Result#to_ary`
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`ActiveRecord::Result#to_a` was introduced in #33912.
I would prefer to make `to_a` as alias to the `to_ary` because:
- It would be clear for users from https://edgeapi.rubyonrails.org/classes/ActiveRecord/Result.html
that `to_a` and `to_ary` are the same
- For us it would take less efforts in case if we needed to change the docs
or implementation, since the methods are the same
Follow up #33912
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
Don't update counter cache unless the record is actually saved
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is a 4th attempt to make counter cache transactional completely.
Past attempts: #9236, #14849, #23357.
All existing counter cache issues (increment/decrement twice, lost
increment) are caused due to updating counter cache on the outside of
the record saving transaction by assigning belongs_to record, even
though assigning that doesn't cause the record saving.
We have the `@_after_replace_counter_called` guard condition to mitigate
double increment/decrement issues, but we can't completely prevent that
inconsistency as long as updating counter cache on the outside of the
transaction, since saving the record is not always happened after that.
We already have handling counter cache after create/update/destroy,
https://github.com/rails/rails/blob/1b90f614b1b3d06b7f02a8b9ea6cd84f15d58643/activerecord/lib/active_record/counter_cache.rb#L162-L189
https://github.com/rails/rails/blob/1b90f614b1b3d06b7f02a8b9ea6cd84f15d58643/activerecord/lib/active_record/associations/builder/belongs_to.rb#L33-L59
so just removing assigning logic on the belongs_to association makes
counter cache transactional completely.
Closes #14849.
Closes #23357.
Closes #31493.
Closes #31494.
Closes #32372.
Closes #33113.
Closes #33117
Closes #33129.
Closes #33458.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Deprecate ActiveRecord::Result#to_hash in favor of #to_a
|
| | |/ / / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
method returns an array of hashes, not a hash
e.g. Hash.try_convert(result) calls #to_hash and raises a TypeError
[Gannon McGibbon + Kevin Cheng]
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When using environment specific credentials, `RAILS_MASTER_KEY` is not used.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add CSP nonce to `style-src` directive
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
For nonce, only `script-src` and` style-src` are meaningful in the
definition of Content Security Policy Level 2.
https://www.w3.org/TR/CSP2/#script-src-nonce-usage
https://www.w3.org/TR/CSP2/#style-src-nonce-usage
Therefore, I think that customization function not needs and it is enough
to enable both directives inside the framework.
Fixes #32920
|
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
For `production` environment look first for `config/credentials/production.yml.enc` file that can be decrypted by
`ENV["RAILS_MASTER_KEY"]` or `config/credentials/production.key` master key.
Edit given environment credentials file by command `rails credentials:edit --environment production`.
Default behavior can be overwritten by setting `config.credentials.content_path` and `config.credentials.key_path`.
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When you pass an empty array to find we know we shoudl return an empty
array but it is surprising that we are returning the original empty
array instead of a new one.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Follow up #33751
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Also this commit removes `:wait` from payload of
`retry_stopped.active_job`.
Related to https://github.com/rails/rails/pull/33751#discussion_r214140008
Follow up #33751
/cc @kaspth, @rafaelfranca
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add mention about it to the "Active Support Instrumentation" guide
Related to https://github.com/rails/rails/pull/33751#discussion_r214745153
Follow up #33751
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`topic` and `reply` belongs_to associations on `SillyReply` are defined
with the same `foreign_key` (`parent_id`) and `counter_cache`
(`replies_count`) columns.
This would cause unintentional side-effect (e.g. saving `SillyReply`
object would cause double increment `replies_count`), so it is better to
avoid that side-effect.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Fix a typo in AR Query Interface [ci skip]
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Fix deprecation warning of `ActiveRecord::Migrator.migrations_path=`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`ActiveRecord::Migrator.migrations_path=` was deprecated in #31727.
This commit fixes:
- `ActiveRecord::Migrator.migrations_path=` is deprecated, but not
`ActiveRecord::Migrator.migrations_paths=`
- Adds missing space
The warning including this commit:
```
DEPRECATION WARNING: `ActiveRecord::Migrator.migrations_path=` is now
deprecated and will be removed in Rails 6.0. You can set the `migrations_paths`
on the `connection` instead through the `database.yml`.
```
Since it was deprecated in Rails 5.2 we should backport it to the `5-2-stable` branch.
Related to #31727
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
block
`ActiveRecord::MigrationContext.new` just create an instance, doesn't
have any side-effect.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Improve readability in form helpers guide [ci skip]
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| |_|/ / /
|/| | | |
| | | | |
| | | | | |
bogdanvlviv/fix-output-when-run-aj-integration-tests
Print correct rake command on running AJ integration tests
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently when executing `bundle exec rake test:integration` under `activejob/`
derectory, it prints helpful info like:
```
(snip)
*** rake aj:integration:async ***
(snip)
*** rake aj:integration:delayed_job ***
(snip)
```
but there is no defined `:aj` scope in `activejob/Rakefile`,
so I think output should be like:
```
(snip)
*** rake test:integration:async ***
(snip)
*** rake test:integration:delayed_job ***
(snip)
```
By the way `rake test:integration` doesn't work if execute it without
prepending `bundle exec` to that command. It is probably what we should
fix too.
|
|\ \ \ \
| | | | |
| | | | | |
Raise `ActiveRecord::InvalidForeignKey` in `before_destroy` for a blob if attachments exist
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
attachments exist
The issue #32584 was fixed in #33405 by adding foreign key constraint
to the `active_storage_attachments` table for blobs.
This commit implements fix on app-level in order to ensure that users
can't delete a blob with attachments even if they don't have the foreign key constraint.
See a related discussion in the Campfire:
https://3.basecamp.com/3076981/buckets/24956/chats/12416418@1236718899
Note that, we should backport it to `5-2-stable` too.
Related to #33405
|
|\ \ \ \
| |/ / /
|/| | | |
PostgreSQL: prepare for pg-1.1
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Parsing of malformed array strings without raising an error is deprecated in
pg-1.1. It's therefore necessary to catch parser errors starting with pg-2.0.
See also pg commit:
https://bitbucket.org/ged/ruby-pg/commits/1b081326b346368e70c9c03ee7080e28d6b3a3dc
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Version 1.1.0 deprecates exec and async_exec with a params array due to
distinct semantics between calls with and without params array.
Instead exec_params or async_exec_params shall be used.
Moreover in pg-1.1.0 exec_* and prepare methods are aliases for async_exec_*
and async_prepare. async_* methods don't need to be called explicit -
they are the default now, when calling exec_* and prepare.
For pg versions before 1.1, keep using async_exec.
|