Although in the above example it looks as though this method returns an
array, it actually returns a relation object and can have other query
methods appended to it, such as the other methods in ActiveRecord::QueryMethods.

although the select
method interprets this as a single argument, and places it into an array
(due to the splat operator), this is then passed to the _select(*fields)
method, which immediately calls fields.flatten!