title: Extending ActiveRecord - what is the difference between send, extend?
body: <p>I'm working on an ApplicationModel for a Rails app that has over 200 modules. The app is so large that when we <code>rails s</code> it literally takes 40 seconds to load our app. So in development we have a ton modules we often change and to see the changes we have to reload the app.</p>
  
  <p>So I created an ApplicationModel and moved all the initializers into that model so changes are reloaded in development and we do not have to restart the server again saving lots of time everyday.</p>
  
  <p>I made ApplicationModel inherit from <code>ActiveRecord::Base</code> and made it an abstract class. All other models inherit from this model. So now we can put our initializers that extend ActiveRecord into this model.</p>
  
  <p>Since I'm working on a project that other people started I don't know the difference between these two ways of extending <code>ActiveRecord</code> and would like to know the differences between them.</p>
  
  <pre><code>ActiveRecord::Base.send(:include, someModule)
  ActiveRecord::Base.extend(ClassMethods)
  </code></pre>