sexta-feira, 8 de outubro de 2010

Aprendizado do dia #1

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!