Improve allow_deprecated_singular_associations_name config doc [ci-skip]

Follow-up to #45344.

This tweaks the description, fleshes out the code example, and fixes the
default value listed for 7.1.
This commit is contained in:
Jonathan Hefner 2022-06-23 14:07:48 -05:00
parent 9badb0f794
commit c47974a946

@ -67,7 +67,7 @@ Below are the default values associated with each target version. In cases of co
- [`config.action_controller.allow_deprecated_parameters_hash_equality`](#config-action-controller-allow-deprecated-parameters-hash-equality): `false`
- [`config.log_file_size`](#config-log-file-size): `100.megabytes`
- [`config.active_record.sqlite3_adapter_strict_strings_by_default`](#config-active-record-sqlite3-adapter-strict-strings-by-default): `false`
- [`config.active_record.allow_deprecated_singular_associations_name`](#config-active-record-allow-deprecated-singular-associations-name): `true`
- [`config.active_record.allow_deprecated_singular_associations_name`](#config-active-record-allow-deprecated-singular-associations-name): `false`
#### Default Values for Target Version 7.0
@ -1031,23 +1031,29 @@ should be large enough to accommodate both the foreground threads (.e.g web serv
#### `config.active_record.allow_deprecated_singular_associations_name`
This maintains the deprecated associations behavior where singular associations can be referred to in where clauses by their plural name. Enable this configuration option to opt into the new behavior.
before,
This enables deprecated behavior wherein singular associations can be referred to by their plural name in `where` clauses. Setting this to `false` is more performant.
```ruby
class Post
end
class Comment
class Comment < ActiveRecord::Base
belongs_to :post
end
post = Post.first
Comment.where(posts: post) # deprecated
Comment.where(post: post) # instead use the relation's name
Comment.where(post: post_id).count # => 5
# When `allow_deprecated_singular_associations_name` is true:
Comment.where(posts: post_id).count # => 5 (deprecation warning)
# When `allow_deprecated_singular_associations_name` is false:
Comment.where(posts: post_id).count # => error
```
The default value depends on the `config.load_defaults` target version:
| Starting with version | The default value is |
| --------------------- | -------------------- |
| (original) | `true` |
| 7.1 | `false` |
#### `ActiveRecord::ConnectionAdapters::Mysql2Adapter.emulate_booleans`
Controls whether the Active Record MySQL adapter will consider all `tinyint(1)` columns as booleans. Defaults to `true`.