title: Rails 3 basic validation not working with :prompt or :include_blank?
body: <p>I have the following code in my view:</p>
  
  <pre><code>&lt;%= f.select :user_id, user_all_select_options, :include_blank =&gt; '--Select a name-----' %&gt;
  </code></pre>
  
  <p>It displays a list of users with <code>--Select a name-----</code> at the top. When a user doesn't select a name from the list and leaves <code>--Select a name-----</code> selected I get errors because the user_id is blank.</p>
  
  <p>For reference the helper method code looks like this:</p>
  
  <pre><code>def user_all_select_options
    User.all.map{ |user| [user.name, user.id] }
  end
  </code></pre>
  
  <p>My model is as follows:</p>
  
  <pre><code>class Parcel &lt; ActiveRecord::Base
  
    attr_accessible :parcel, :received_at, :received_by, :chilled, :courier, :location, :passed_to, :user_id, :user, :content, :localip
  
    validates :user_id, :presence =&gt; true
  
    belongs_to :user
  
  end
  </code></pre>
  
  <p>For some reason the validation doesn't appear to be running, however if I select a user from the drop down and add a validation for an other field input the application correctly shows the user a message stating which field is incorrectly empty.</p>
  
  <p>Interestingly if I leave the select drop down as <code>--Select a name-----</code> and keep the additional validation, an exception is thrown. It doesn't prompt for the missing fields it just errors.</p>
  
  <p>Here is the record during an error (this record was from when I had a validates presence check on the location field:</p>
  
  <pre><code>{"utf8"=&gt;"✓", "authenticity_token"=&gt;"wM4KPtoswp3xdv8uU4UasdadNsZi9yFZmk=", "parcel"=&gt;{"user_id"=&gt;"", "received_by"=&gt;"dan", "content"=&gt;"", "chilled"=&gt;"0", "courier"=&gt;"", "location"=&gt;"", "passed_to"=&gt;"", "received_at(3i)"=&gt;"9", "received_at(2i)"=&gt;"2", "received_at(1i)"=&gt;"2013", "received_at(4i)"=&gt;"22", "received_at(5i)"=&gt;"59"}, "commit"=&gt;"Receive this Parcel", "action"=&gt;"create", "controller"=&gt;"parcels"}
  </code></pre>
  
  <p>Where should I start looking? The errors that show are when the controller does an unless check against the user.</p>
  
  <p>The parcel controller create method looks like this:</p>
  
  <pre><code>  def create
      @parcel = Parcel.new(params[:parcel])
      @parcel.localip = request.env['REMOTE_ADDR']
      @parcel.received_by = @parcel.received_by.upcase
  
      unless @parcel.user.mobilenumber.blank?
        UserMailer.parcel_notification(@parcel).deliver
      end
  
      respond_to do |format|
        if @parcel.save
          format.html { redirect_to @parcel, notice: 'Parcel was successfully created.' }
          format.json { render json: @parcel, status: :created, location: @parcel }
        else
          format.html { render action: "new" }
          format.json { render json: @parcel.errors, status: :unprocessable_entity }
        end
      end
    end
  </code></pre>