title: Rails 3 ':reject_if => lambda' prevents validation?
body: <p>Following <a href="http://railscasts.com/episodes/196-nested-model-form-part-1" rel="nofollow">this RailsCast</a> for nested model forms:</p>
  
  <pre><code>class Survey &lt; ActiveRecord::Base
    has_many :questions, :dependent =&gt; :destroy
    accepts_nested_attributes_for :questions, :reject_if =&gt; lambda { |a| a[:content].blank? }, :allow_destroy =&gt; true
  end
  </code></pre>
  
  <p>and</p>
  
  <pre><code>class Question &lt; ActiveRecord::Base
    belongs_to :survey
    has_many :answers, :dependent =&gt; :destroy
    accepts_nested_attributes_for :answers, :reject_if =&gt; lambda { |a| a[:content].blank? }, :allow_destroy =&gt; true
    validates_presence_of :content
  end
  </code></pre>
  
  <p>and</p>
  
  <pre><code>class Answer &lt; ActiveRecord::Base
    belongs_to :question
    validates_presence_of :content
  end
  </code></pre>
  
  <p>These are used to create a nested form with all 3 models.</p>
  
  <p>Here's the issue:
  I can create a new survey, give the survey a title, leave the question content blank, add an answer and click submit.</p>
  
  <p>The survey gets created. Because of the lambda, the blank question field is discarded as well as the not-blank answer field.</p>
  
  <p>What can I do to make the validation catch when an answer is present but not a question, allowing the user to either delete the answer or provide a question?</p>