title: As of Rails 5, when is :inverse_of necessary to set manually?
body: <p>I've read in various places that it gets automatically inferred in some circumstances, but I've found the documentation on this feature to be hard to follow. Can anyone shed some light on the principles? <strong>Specifically when will Rails be able to infer and when will Rails not be able infer inverses?</strong></p>
  
  <p>I'd like to consider</p>
  
  <ul>
  <li>polymorphic associations</li>
  <li>single tabled inheritance (e.g. where <code>BundleProduct</code> and <code>IndividualProduct</code> both inherit from <code>Product</code> and use a <code>products</code> table)</li>
  <li>regular has_one/has_many/belongs_to associations</li>
  <li>has many through: associations</li>
  </ul>
  
  <p><strong>Some context:</strong> I'm maintaining a reasonably large 9-year-old Rails application with many, many tables. I'd like to have some guidance on which models require addition of <code>inverse_of:</code> rather than having to change every model in the system.</p>