| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The order of scope evaluation should be from through scope to the
association's own scope. Otherwise the association's scope cannot affect
to through scope.
Fixes #13677.
Closes #28449.
|
| | | |
| | | |
| | | |
| | | | |
[ci skip]
|
|\ \ \ \
| |_|/ /
|/| | | |
fix type fully qualified [ci skip]
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Normalize/process Cache-Control headers consistently
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The prior logic explictly set `Cache-Control` to `nil`. But, we would only
reach that logic if the header was not set to begin with. So, rather than give
it any value at all, just leave it alone.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The prior logic was trying to do too many things at once. For all responses,
we want to perform two distinct steps:
* Merge/normalize the `Cache-Control` values found in HTTP headers and those
found in the `@cache_control` hash.
* Conditionally set a default `Cache-Control` header value when we have an ETag
This change separates these concerns since the merge/normalize step should
occur for all responses, but the second should only occur when we have already
set an ETag/last modified value. Normally ETag middleware will set a default
`Cache-Control`, but only if an existing ETag is not already set. So, in the
cases where an ETag is set, we need to set the default `Cache-Control` value
ourselves.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the existing logic, the `Cache-Control` header may or may not get
normalized by additional logic depending on whether `response.cache_conrol`
has been modified. This leads to inconsistent behavior, since sometimes
`Cache-Control` can contain whatever a user sets and sometimes it gets
normalized, based on the logic inside of `set_conditional_cache_control!`. It
seems like this normalization process should happen regardless to ensure
consistent behavior.
|
|\ \ \ \
| | | | |
| | | | | |
Do not pass an instance variable to a private method
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`ActionView::Helpers::Tags::Base` has `@object` and
all passed arguments for
* `#value`
* `#value_before_type_cast`
* `#value_came_from_user?`
are `@object`, so we do not need to pass arguments in this case.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Run in-app rails commands via fork+load where possible
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | | |
While this avoids shell argument parsing, we still pass through
everything in our stack.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Because `refl.scope` is the same meaning with `chain_head.scope`.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Explicitly require `test_unit/reporter`
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If the user used the `bin/test` to execute the test, this file is
automatically loaded, so require is unnecessary.
https://github.com/rails/rails/blob/acea68de026ba657cb65c4dd0fc1f24ba67e1cf8/railties/lib/rails/plugin/test.rb#L4
However, when using `rake test`, an explicit require is required because
the above file is not loaded.
Fixes #30516
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Add Documentation For Duration Support & Expiry Meta Data Added to Signed / Encrypted Cookies
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Documentation for Duration support added to signed/encrypted cookies
* Changelog entries for the duration support and expiry metadata added to cookies
[ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
not empty
Because `reflection_scope.values` will create extra new hash.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If `reflection.scope` isn't given, `reflection_scope` is always
`klass.unscoped`. it is unnecessary to merge it.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Otherwise using reserved words as composite primary key names will be
failed as an invalid SQL.
Fixes #30518.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Defined scope treats nil as `all`, but scope in associations isn't so.
If the result of the scope is nil, most features on associations will be
broken. It should treat nil as `all` like defined scope.
Fixes #20823.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This effectively reverts 200cf32e207728df287cac2ec113a7cbe277c1eb,
restoring a variant of 5a0e0e72995472e315738dcea5b5a12d6e3d3489.
|
| | | |
| | | |
| | | |
| | | | |
Because this is not a test case.
|
|\ \ \ \
| | | | |
| | | | | |
Remove outdated comment [ci skip]
|
| | | | |
| | | | |
| | | | |
| | | | | |
We do not use double assign since 61f92f8bc5fa0b486fc56f249fa23f1102e79759.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If `reflection_scope.where_clause` is not empty, `through_scope` should
be joined the source association. But if `values[:references]` in
`reflection_scope` is empty, the source association will not be joined.
It should use `source_reflection.table_name` in that case.
Fixes #22535.
Closes #28763.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
koic/fix_cant_modify_frozen_string_error_in_ac_rendering
Fix `can't modify frozen String` error in AC::Rendering
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Replace unnecessary link with typewriter text [ci skip]
|
| | | | | | | |
|
|/ / / / / / |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If `reflection_scope.where_clause` is not empty, `through_scope` should
be joined the source association. But if the through association doesn't
have explicit `:source`, `options[:source]` will be nil and
`scope.includes_values` will also be empty. It should use
`source_reflection.name` rather than `options[:source]`.
Fixed by a26cff3c1235c61cd0135bed4ef63d7be452b458.
Fixes #11078.
Fixes #26129.
Closes #14312.
Closes #29155.
Closes #29841.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Without this fix, preloading `:comments_with_include` will cause the
following error:
```
% bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_with_has_many_through_join_model_with_include
Using sqlite3
Run options: -n test_eager_with_has_many_through_join_model_with_include --seed 1502
E
Error:
EagerAssociationTest#test_eager_with_has_many_through_join_model_with_include:
ActiveRecord::AssociationNotFoundError: Association named 'post' was not found on Post; perhaps you misspelled it?
```
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If `reflection_scope.where_clause` is empty, `scope` isn't changed. So
`scope.eager_loading?` is always false.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Bump PostgreSQL version to the latest version 9.6 at Travis CI
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Travis CI new default Ubuntu Trusty supports 9.6
https://docs.travis-ci.com/user/database-setup/#Using-a-different-PostgreSQL-Version
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Remove unnecessary `to_i` for old sqlite3 adapter
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`to_i` was added for SQLite3 adapter which did not handle number
but sqlite3 gem already supports it then `to_i` is unnecessary.
else condition is kept for adapters which return string,
i.e. mysql(not mysql2) and sqlserver.
Renamed `test_cache_does_not_wrap_string_results_in_arrays`
to `test_cache_does_not_wrap_results_in_arrays` to explain the
current behavior. most of adapters return integer, not only string.
* Refer these commits:
"future proofing the sqlite3 adapter code"
https://github.com/rails/rails/commit/beda2d43d6ac5c3435fc2fba0cbd108c20fe1c67
"Refactor calculation test to remove unneeded SQLite special case."
https://github.com/rails/rails/commit/47d568ed3fc701934ebe80b276f3d8bf6951c93f
"no need to to_i, sqlite does that for us"
https://github.com/rails/rails/commit/6cf44a1bd64ba10497742d70ad78fe68faa16e99
|
|\ \ \ \ \
| | | | | |
| | | | | | |
CI with the latest stable(GA) version of MariaDB 10.2
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
when tested with MariaDB 10.2.8 or higher
Refer #30485
https://mariadb.com/kb/en/the-mariadb-library/alter-table/#drop-column-if-exists-col_name-cascaderestrict
> MariaDB starting with 10.2.8
> Dropping a column that is part of a multi-column UNIQUE constraint is not permitted.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Travis CI is migrating Ubuntu version to Trusty
- MariaDB 10.2 is supported on Ubuntu Trusty
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
type columns
Fixes #30496.
|