title: Prevent before_create method to save when false or nil
body: <p>I have a <code>:before_create</code> method that performs some checks and returns <code>false</code> or <code>true</code>.</p>
  
  <pre><code>def create_subscription_on_gateway 
    gateway = self.keyword.shortcode.provider
    create_subscription = gateway.classify.constantize.new.create_subscription(self.phone,self.keyword_keyword,self.shortcode_shortcode,self.country)
    errors[:base] &lt;&lt; "An error has occurred when finding gateway." if gateway.nil?
    errors[:base] &lt;&lt; "No gateway found for this shortcode." if create_subscription.nil?
    errors[:base] &lt;&lt; "Subscription could not be made." if create_subscription == false
  end
  </code></pre>
  
  <p>Now, if the method returns <code>false</code> or <code>nil</code> I can see the errors on the form page okay. The problem is that the object has been saved to the database. </p>
  
  <p>How can I prevent the object to be saved when there are still errors associated on it?</p>