title: Why Rails 5 uses ApplicationRecord instead of ActiveRecord::Base?
body: <p>We know that Rails 5 added <code>ApplicationRecord</code> as an abstract class which was inherited by our models (ActiveRecord).</p>
  
  <p>But basically, I think every technical requirement we do with ApplicationRecord, we can also do with <code>ActiveRecord::Base</code>. For instance:</p>
  
  <pre><code>module MyFeatures
    def do_something
      puts "Doing something"
    end
  end
  
  class ApplicationRecord &lt; ActiveRecord::Base
    include MyFeatures
    self.abstract_class = true
  end
  </code></pre>
  
  <p>So now every model will be attached the behaviors of <code>MyFeatures</code>. But we can also achieve this in Rails 4:</p>
  
  <pre><code>ActiveRecord::Base.include(MyFeatures)
  </code></pre>
  
  <p>So what is the benefit of using <code>ApplicationRecord</code>, do you think it is necessary to add <code>ApplicationRecord</code>?</p>