title: Rails Mailer Best Practice - controller or after_create callback?
body: <p>In common Ruby on Rails 3/4 apps, there are two options to deliver mail after the creation of a model:</p>
  
  <p><strong>1) Send the mail directly from the controller's create action</strong></p>
  
  <pre><code>#listings_controller.rb
  
  def create
      @listing.create(params[:listing])
      if @listing.save
          ListingMailer.new_listing_notice(@listing).deliver
          format.html {redirect_to @listing}
          ...
      end
  end
  </code></pre>
  
  <p>or <strong>2) Send the mail from a Model Callback</strong></p>
  
  <pre><code>#listing.rb
  
  
  class Listing
      after_create :notify
      ...
      def notify
          ListingMailer.new_listing_notice(self).deliver
      end
  end
  </code></pre>
  
  <p>Is there a current consensus about which way is better? Sending from the controller gives more control, but if a mail will always be sent is there any reason not to use the callback? Is this mostly a question of style, or are there other important concerns?</p>