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.
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”