Why don't I get the correct error messages?

This is my model

class Product < ActiveRecord::Base

  validates_presence_of :title, :description, :image_url
  validates_numericality_of :price
  validate :price_must_be_at_least_a_cent
  validates_uniqueness_of :title
  validates_format_of :image_url,
                      :with => %r{\.(gif|jpg|png)$}i,
                      :message => 'must be a URL for GIF, JPG ' +
                      'or PNG image.(gif|jpg|png)'

  protected
  def price_must_be_at_least_a_cent
  errors.add(:price, 'should be at least 0.01' ) if price.nil? ||
  price < 0.01
  end
end

It validates all the errors correctly but i get the generic error
messages.

These are the error messages I get

There were problems with the following fields:
{{attribute}} {{message}}
{{attribute}} {{message}}
{{attribute}} {{message}}
{{attribute}} {{message}}
{{attribute}} {{message}}

This is due to incompatibility in your rails version and i18n version.
If you are on Rails 2.3 branch… then upgrade to 2.3.8 or higher
or copy over the error messages yml file from your activerecord gem
installation into your locales directory
and change {{attribute}} to %{attribute}
{{message}} to %{message}
{{count}} to %{count}
and so on

Chirag
http://sumeruonrails.com