To solve the length validation try starting with writing the test first.

product = Product.new(:title => “too tiny”, :description => “this product has a title that is toooooo tiny”, :price => 0.5, :image_url => “tiny.gif”)

To customize error messages, you’ll want to change the translations. You can add customized translations in config/locales/en.yml for example. See Translating ActiveRecord for more info.

Dorian says:

Looking in the docs, I couldn’t find any way to customise the message when using the short form ‘validates’, so I switched to the long form ‘validates_uniqueness_of’:

validates_uniqueness_of :title, :message => “must be unique”

Eric says:

The API documentation states “This method (validates) is a shortcut to all default validators and any custom validator classes ending in ‘Validator’. “

validates :title, :length => {:minimum => 10, :too_short => “is too short and must contain at least 10 characters”}

Phill says:

I was able to customize the message using the short form by using the following: validates :title, uniqueness: {message: 'must be unique. Show some originality!'}