Why Rails 5 uses ApplicationRecord instead of ActiveRecord::Base? : <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>
