Bom, para me obrigar a postar tentarei manter coisas úteis que acabo aprendendo e que provavelmente daria pra viver sem saber(ou não?).
Imagine que queremos verificar a unicidade de um dado composto no ruby on rails.
id | nome | sobrenome
----|-----------|-------------------
1 | joao | de castro
2 | joao | de góes
Seria permitido o exemplo acima, mas não caso fosse:
id | nome | sobrenome
----|-----------|-------------------
1 | joao | de castro
2 | joao | de castro
Usando-se de:
validates_uniqueness_of :nome, :sobrenome
Estariamos criando uma restrição não somente para nome, mas também para sobrenome, não permitindo que se tenha dois joãos ou dois "da silva", o que não é bem o que queremos.
Para este fim, ao invés de criarmos uma validação customizada, podemos simplesmente utilizarmos:
validates_uniqueness_of :nome, :scope => [:sobrenome]
Caso queiramos criar um dado composto maior, é a mesma regra:
validates_uniqueness_of :coluna1, :scope => [:coluna2, :coluna3, :coluna4]
Espero que tenham algum proveito disso, até mais!