Use ActionView::OutputBuffer#safe_append= from templates
avoid extra method calls for appending newlines

before:

        ');@output_buffer.append= ( content_icon row[:content] );@output_buffer.safe_concat('
');@output_buffer.safe_concat('        ');@output_buffer.append= ( spinner_img );@output_buffer.safe_concat('
');@output_buffer.safe_concat('      </td>
      <td class="content">
        ');@output_buffer.append= ( content_link row[:content] );@output_buffer.safe_concat('
');@output_buffer.safe_concat('      </td>
      <td class="message">
');

after:

        ';@output_buffer.append=( content_icon row[:content] );@output_buffer.safe_append='
        ';@output_buffer.append=( spinner_img );@output_buffer.safe_append='
      </td>
      <td class="content">
        ';@output_buffer.append=( content_link row[:content] );@output_buffer.safe_append='
      </td>
      <td class="message">
';
I think "uniq" is more Rails-y than select("distinct(categories.id)")
Minor copy editing
update README since email-service isn't a word
Uniq cannot be used directly on an ActiveRecord model. 'DISTINCT field' is the only pluck query that translates into the aforementioned SQL
Document nested attributes as hash of hashes

Document the possibility to use a hash of hashes for nested attributes for a one-to-many association (in addition to the documented possibility to use an array of hashes).
Align indentation in comments
Fix my typo
Fix missing closing <tt> tag
clarify verbiage
absence validator doc
fix absence validator doc for boolean field
fix missing to
do some typo fixing
+ Add test for auto timestamps update of both old & new parent records
Modifies belong_to touch callback to touch old associations also #9091
make the headers consistent
Should be a symbol not string to defer the choice of layout.
[ci skip]
added details to section 4.1.2 of the Asset Pipeline guide, describing how to configure Apache to serve the gzipped version of the precompiled assets