views:

105

answers:

2

Notice the following result when I submit blank :title and :description fields

Error div tags only wraps the title text field and not the description text area.

The validations are in the controller:

class Question < ActiveRecord::Base
  validates_presence_of :title
  validates_presence_of :description

And, the form is generated with those names:

-form_for(@question) do |f|
  = f.error_messages
  = f.label :title
  = f.text_field :title, :size => 50, :onchange => remote_function(:url => {:action => :display_tag_suggestions}, :with => 'Form.Element.serialize(this)')
  #suggestions
  = f.label :description
  = f.text_area :description
  ...

But, for some reason, only :title gets wrapped in the error div tags:

<form action="/questions" class="new_question" id="new_question" method="post">
  <div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="6HQaiu1D0gBQcKw2pLeZP6Jvn0FSClPD5Sk9HwegzPg=" /></div>
  <div class="errorExplanation" id="errorExplanation">
    <h2>2 errors prohibited this question from being saved</h2>
    <p>There were problems with the following fields:</p>
    <ul>
      <li>Title can't be blank</li>
      <li>Description can't be blank</li>
    </ul>
  </div>
  <label for="question_title">Title</label>
  <div class="fieldWithErrors"><input id="question_title" name="question[title]" onchange="new Ajax.Request('/questions/display_tag_suggestions', {asynchronous:true, evalScripts:true, parameters:Form.Element.serialize(this) + '&amp;authenticity_token=' + encodeURIComponent('6HQaiu1D0gBQcKw2pLeZP6Jvn0FSClPD5Sk9HwegzPg=')})" size="50" type="text" value="" /></div>
  <label for="question_description">Description</label>
  <textarea cols="40" id="question_description" name="question[description]" rows="20"></textarea>
  ...

I don't think that behavior is expected. The problem most people have is that it's wrapping things with divs, which won't display properly. My problem is that fields aren't being wrapped with divs to begin with!

I haven't made any (conscious) changes to how errors are handled, so I'm not sure why it's not working properly.

A: 

What version of Haml are you using? Some older versions had compatibility trouble with error wrapping.

nex3
I'm using Haml v2.2.23
Teef L
You're way out of date. Upgrade to 3.0.9 and hopefully this should go away.
nex3
A: 

Just to confirm. Was having same problem. Upgrading HAML did the trick.

Cory Schires