| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \
| | |
| | |
| | | |
Don't error on an empty CONTENT_TYPE
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit prevents a possible issue wherein an empty CONTENT_TYPE
header is sent in a request to a Rails application, and then `request.content_mime_type`
would return `nil`. This is because the `has_content_type?` guard method
was not properly checking the validity of a request's content type; it
was only checking to see whether or not the header existed, not whether
it had a value stored inside.
Relatedly, after an internal discussion, it was determined that the
`has_content_type?` method is not meant to be part of the public API,
and is therefore changed to a `:nodoc:` method in this commit.
The test for this behavior is a little bit ugly, for two reasons. One is
that it was difficult to determine where to place the test... I figured
the best place would be with the rest of the ParamsWrapper stuff, since
that's where the original issue was. Also, we have to do some fancy
footwork in calling `dispatch` on the test's controller manually... this
is because `ActionController::TestCase` will throw an error if you try
and pass in a nil content type, which is exactly what we are trying to
test here... Because of that, we have to manually call in to the
controller, and bypass the `post` request helper.
Fixes #26912.
This is a regression in behavior between Rails versions 4.2.x and 5.0.x,
which was introduced via [this commit](https://github.com/rails/rails/commit/a9f28600e901b11a9222e34bfae8642bfb753186).
|
|\ \ \
| | | |
| | | | |
Format and send logs to logger.fatal from DebugExceptions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
fatal multiple times. Expose tags_text from TaggedLogging to be used for log formatting
Fixes #26134
|
|\ \ \ \
| | | | |
| | | | | |
Avoid `build_preloader` if preloading is not needed
|
| | |_|/
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
Call `spawn` and bang method for `none`
|
|/ / / /
| | | |
| | | |
| | | | |
All query methods calls `spawn` and bang method, but only `none` is not.
|
|\ \ \ \
| | | | |
| | | | | |
Fix NameError: undefined local variable or method `result`
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Caused by 007e50d8e5a900547471b6c4ec79d9d217682c5d.
https://github.com/rails/rails/pull/26925 was closed in favor of dcb364e.
But dcb364e is only fixed sqlite3 adapter and still broken mysql2
adapter with `prepared_statements: true` (`exec_stmt_and_free`).
```diff
diff --git a/activerecord/test/config.example.yml b/activerecord/test/config.example.yml
index 58e2d45..7b3c1a6 100644
--- a/activerecord/test/config.example.yml
+++ b/activerecord/test/config.example.yml
@@ -56,9 +56,11 @@ connections:
username: rails
encoding: utf8
collation: utf8_unicode_ci
+ prepared_statements: true
arunit2:
username: rails
encoding: utf8
+ prepared_statements: true
oracle:
arunit:
```
```
% be rake test_mysql2 --verbose
...
Using mysql2
/Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb:90: warning: assigned but unused variable - result
/Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb:101:in `block in exec_stmt_and_free': NameError: undefined local variable or method `result' for #<ActiveRecord::ConnectionAdapters::Mysql2Adapter:0x007fe2c50eb140>: SELECT `ar_internal_metadata`.* FROM `ar_internal_metadata` WHERE `ar_internal_metadata`.`key` = ? LIMIT ? (ActiveRecord::StatementInvalid)
from /Users/kamipo/src/github.com/rails/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:586:in `block in log'
...
```
|
|\ \ \ \
| | | | |
| | | | | |
Remove warning from Bignum constant access
|
| |/ / /
| | | |
| | | |
| | | | |
value. See also http://patshaughnessy.net/2014/1/9/how-big-is-a-bignum for smallest bignum value
|
|\ \ \ \
| |/ / /
|/| | | |
use correct value in example [ci skip]
|
|/ / /
| | |
| | |
| | |
| | | |
Need to specify `reload` from turbolinks 5.
Ref: 7225f0bb9fd1d71a7a37b53815c90178cc7319bd
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Using the method you're testing to generate expected
values can lead to bugs being masked.
|
|\ \ \
| | | |
| | | | |
Fix an issue with JSON encoding of "Infinity" and "NaN" values
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- When `as_json` returns `Infinity` or `NaN` as the value of any of the key,
we don't used to call `as_json` on it as it was treated as primitive.
- This used to pass `Infinity` or `NaN` to `JSON.generate` and Ruby used
to throw an error for `Infinity/NaN not allowed in JSON.`
- This patch changes the code to call `as_json` on these primitives so
that they are converted to proper values before being passed to
`JSON.generate`.
- Fixes #26877.
|
|\ \ \ \
| | | | |
| | | | | |
Changelog edits
|
| | |/ /
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
Add missing `+` around a some literals.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Mainly around `nil`
[ci skip]
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This alternative case expressions read better for my taste, and look more uniform
in a file where other similar case expressions are used (without dynamic clauses).
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix spelling in API documentation
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
[ci skip]
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
Add --skip-coffee generating option
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Usage
`rails new awesome-project --skip-coffee`
|
|\ \ \ \ \ \ \
| |_|_|_|/ / /
|/| | | | | | |
Add `:nodoc` to `table_structure`
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Follow up to #27008.
`table_structure` is an internal method so it is better to hide it in
the doc. And alias `table_structure` to `column_definitions` to remove
the duplicated `columns` method in the sqlite3 adapter.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The current implementation of AC::Parameters#permit builds permitted hashes and
then calls permit! on them.
This filtering is recursive, so we call permit! on terminal branches, but then
ascendants call permit! on themselves when the recursion goes up the stack,
which recurses all the way down again because permit! is recursive itself.
Repeat this for every parent node and you get some scary O-something going on
that I don't even want to compute.
Instead, since the whole point of the permit recursion is to build permitted
hashes along the way and at that point you know you've just come up with a
valid filtered version, you can already switch the toggle on the spot.
I have seen 2x speedups in casual benchmarks with small structures. As the
previous description shows, the difference in performance is going to be a
function of the nesting.
Note that that the involved methods are private and used only by permit.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
alexanderkustov/alexanderkustov/update-docs-ActionView
better docs for ActionView::ViewPaths#prepend_view_path [ci skip]
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
✂️ extra line
|
| | | | | | | |
|
| |_|/ / / /
|/| | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Refactor column initialization into `new_column_from_field`
|
|/ / / / /
| | | | |
| | | | |
| | | | | |
that accepts results of SHOW FIELDS
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Configure query caching (per thread) on the connection pool
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
connected? doesn't mean what we need here.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Update guides/source/active_record_querying.md
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Add info about updating locking column value
Follow #26050 and #26871
[ci skip]
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
add `ActionController::Parameters#merge!`
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This method has the same behavior as `Hash#merge!`, returns current
`ActionController::Parameters`.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
versions of mysql2
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Add ActiveRecord::Base.connection_pool.stat
|
| | | | | | | |
|