Does not validate presence of entry fields

Hi all

I wrote a small form and I am trying to check if the fields are

My Model is:
class Contact < ActiveRecord::Base
  validates_presence_of :name, :email, :body
validates_length_of :body, :maximum =>2000

class ContactController < ApplicationController
def new
     @contact =
def create
   @contact =[:contact])


New view

<%= error_messages_for :contact %>

<% form_for @contact, :url => { :action => 'create' }, :html => {
:method => :post } do |f| %>
<legend>Please send your message: </legend>
<p><label>Your Name:<br /><%= f.text_field :name, :size => 25
<p><label>Your email:<br /> <%= f.text_field :email, :size => 25
<p><label>Message:<br /><%= f.text_area :body, :rows => 10, :cols => 30
<p><label><%= submit_tag 'Submit' %> </label></p>
<% end %>

Create view
<h2>Thank you for your interest in my site</h2>

When the entry fields are not populated the forms shows the create view
and does not show any error message. why?

Because you aren't doing anything in the create action to adjust the result if there is a failure. You want something more like this:

def create
   @contact =[:contact])
     render :action => 'new'

Or this which is pretty close to the default generated by Rails scaffolding.

   def create
     @contact =[:contact])

       flash[:notice] = 'Contact was successfully created.'
       render :action => "new"