this code is never used, remove it
remove more dead code

We control the inputs to `construct`, so the wrong type shouldn't be
passed in ever.
extract the string handling part to a method.

We know the structure passed in to the `construct` method will be a
hash, so we don't need to test it all the time.  The key value will be a
symbol or string, so handle it with the special method
Call `rails plugin new yaffle` in the plugins guide. [ci skip]

It's confusing to not explicitly do this step.
Merge pull request #12463 from ulyssecarion/master

Call `rails plugin new yaffle` in the plugins guide. [ci skip]
typecast records returned from the db rather than to_sing everything
@associations can never have an array, so remove the dead code
decouple JoinAssociation from JoinDependency
hide join_parts internals from other classes