Use a hidden div.
In general, you do not want to try to mix JS and HTML. Acceleration can be complex, error prone, and inconvenient due to cross-site scripting attacks.
Just draw your form in a div, which is not displayed by default. In ERB:
<div id="school_name_form" style="display: none;"> <%= render 'form' %> </div>
In your CoffeeScript:
$ -> $('#school_name_select').change -> if $(this).val() $('#school_name_form').slideUp() else $('#school_name_form').slideDown()
I recommend using a small, tasteful transition, like a slide or fading. This gives your application a more streamlined feel.
No need for AJAX. This pattern is so common that I have the style of the entire application program defined as follows.
.not-displayed { display: none; }
Then, using HAML (if you're at it), the HTML template will be simple:
#school_name_form.not-displayed = render 'form'
source share