title: rails 4 before_validation on: :create or on: :save
body: <p>I am having a case which is getting around my head.</p>
  
  <p>I have an Image model which I only want to save if it gets uploaded. I also need some information coming from the upload to validate the image(like height and width). But I want only the upload to happen if somebody is trying to save the file the image for the first time.</p>
  
  <p>So I thought the best option would be to have a <code>before_validation</code>, but I would like it to run only on save!</p>
  
  <p>My code is on this gist <a href="https://gist.github.com/andreorvalho/b21204977d2b70fdef83">https://gist.github.com/andreorvalho/b21204977d2b70fdef83</a></p>
  
  <p>So the weird part is this <code>on: :save</code> and <code>on: :create</code> have really weird behaviours or at least not what I expected.</p>
  
  <p>When I put it as <code>on: :save</code> If I try to do an <code>image.save</code> on a test I can see my <code>before_validation</code> callbacks are not ran!</p>
  
  <p>If I put <code>on: :create</code> is ran in every situation is does not matter if I ran <code>image.save</code>, <code>image.create</code> or <code>image.valid?</code></p>
  
  <p>So I am guessing this is either not working or I am misunderstanding the goal of those on settings.</p>
  
  <p>p.s. my validation on create, also occurs in every situation save, create or valid?</p>
  
  <p>let me know if anybody ran into the same or knows why is not supposed to work like this.</p>