You probably already know (otherwise, I highly invite you to read the Ruby on Rails bases) how easy it is to validate datas with our favorite framework :)

if myDatas.save
#The datas have been saved
else
#There's an error. The myDatas.errors contains it.
end

After that, you only need to add some validation parameters for the datas in the model.
But now, let’s guess others validations cases, a bit particular that doesn’t enter in the « normal » case.

You only need to create a new method which will come validate your datas (the example above is completely fake) :

def validates_roxitude(*attribute)
reg = Regexp.new '/^ruby(.*?)rox$/'
self.errors.add('rox', 'Hey, Ruby rox. You have to say it !') unless reg.match attribute
end

Here, we declare an error except if the field starts par « ruby » and ends by « rox ».

We only need to force the validation with this method for our field and Ruby rox ! ;)
class myModel < ActiveRecord::Base
validates_roxitude :myField
end

 
Fork me on GitHub