ActionController::InvalidCrossOriginRequest fails with 422 instead of 500
Fixes #15967
Use `#tr` instead of `#gsub`

`#tr` is more efficient than `#gsub` and can be used as a drop in
replacement in this context.
delete leftover JoinOperation struct
Add ActiveJob to "Welcome to Rails" section

[ci skip]
Link to ActiveModel’s README in "Welcome to Rails"

A link to the README of each module is included in "Welcome to Rails",
only ActiveModel (and ActiveJob, see #17264) are missing.

[ci skip]
Remove broken http://tore.darell.no link

Replace with Twitter account, unless @toretore has a better
suggestion :ear since http://tore.darell.no returns 404.

[ci skip]
Raise an error for has_one associations which try to go :through a polymorphic association [#17263]
specify protocol for external links

to ensure correct parsing result of rdoc
Merge pull request #17270 from neumanrq/fix/external_links_to_json_project

specify protocol for external links to json project
Merge pull request #17266 from claudiob/fix-broken-tore-darell-link

Remove broken http://tore.darell.no link
Merge pull request #17265 from claudiob/add-link-to-active-model-readme

Link to ActiveModel’s README in "Welcome to Rails"
Merge pull request #17264 from claudiob/add-activejob-to-readme

Add ActiveJob to "Welcome to Rails" section
Merge pull request #17257 from Bounga/use_tr_instead_of_gsub_in_journey_scanner

Use `#tr` instead of `#gsub` in Journey scanner
Remove duplicate stringify_keys in text_field_tag

All the methods that invoke `text_field_tag` (such as `hidden_field_tag`)
and all the methods that invoke `number_field_tag` (that is `range_field_tag`)
do not need to call `stringify_keys` on their `options` parameter since the
`text_field_tag` method [is already doing it internally](https://github.com/claudiob/rails/blob/4159134524f4c78d008eef9d9a17f73a3172dcc8/actionview/lib/action_view/helpers/form_tag_helper.rb#L182):

```ruby
def text_field_tag(name, value = nil, options = {})
  tag :input, { "type" => "text", "name" => name, "id" => sanitize_to_id(name), "value" => value }.update(options.stringify_keys)
end
```

and `number_field_tag` is [already doing it internally](https://github.com/claudiob/rails/blob/e3207bdbba55f3806441f22b175557579bc0b051/actionview/lib/action_view/helpers/form_tag_helper.rb#L780) as well:

```ruby
def number_field_tag(name, value = nil, options = {})
  options = options.stringify_keys
  ...
end

[Note #1: My code uses `merge` to respect the existing behavior of
duplicating the `options` hash before updating its keys, see https://github.com/rails/rails/pull/17096#issuecomment-57223827]

[Note #2: My code uses symbols instead of strings (e.g.: `:hidden`) to look
forward to future version of Ruby/Raiks (GC symbols); the result of the method,
however, is the same, because the symbols are stringified inside `text_field_tag`]

[Note #3: I had previously created a similar PR #17096 but decided to
split it into multiple PRs given the feedback received in the comments]
Merge pull request #17271 from claudiob/remove-duplicate-stringify-keys

Remove duplicate stringify_keys in text_field_tag and number_field_tag
Merge pull request #17262 from swapdisc/delete-join-operation-struct

delete leftover JoinOperation struct
Fix how file_ and password_field_tag edit options

This commit fixes the behavior of `file_field_tag` and `password_field_tag`
when invoked with a hash of options.

These two helpers are different from all the other ones in that they modify the
options hash passed as a parameter, whereas all the other helpers duplicate it
before updating it.

The result is that *bad things* can happen if the user re-uses the same hash.
For instance, users who write the following code to display a file field
followed by a text field (both with the same class):

```rhtml
<% options = {class: 'important'} %>
<%= file_field_tag 'Upload', options %>
<%= text_field_tag 'Name', options %>
```

would instead see **two file fields!**

```html
<input class="important" id="Upload" name="Upload" type="file">
<input class="important" id="Name" name="Name" type="file" value="value">
```

This PR replaces `update` with `merge` in the code of the two helpers,
fixing the issue above.

The included test verifies the change, since it passes after this PR, but
fails before with the following error:

```
Expected: <input type="text" name="title" id="title" value="Hello!" class="important" />
Actual: <input type="password" name="title" id="title" value="Hello!" class="important" />
```
Merge pull request #17273 from claudiob/fix-file-and-password-field-tag

Fix how file_ and password_field_tag edit options
Merge pull request #17255 from printercu/cors_exception_wrapper

ActionController::InvalidCrossOriginRequest fails with 422 instead of 500
Merge pull request #17267 from rebyn/master

Raise an error for has_one associations which try to go :through a polymorphic association