
A partir da próxima versão do Rails teremos alguns recursos extras nas famosas fixtures.
Geração de ID's automáticos
Hoje é assim:
george: id: 1 name: George the Monkey reginald: id: 2 name: Reginald the Pirate
Cadas uma das fixtures tem dois identificadores, um para o banco (id: 1) e outro para humanos (george, por exemplo). Por que não gerar a primary key automaticamente? Assim criaríamos as nossas fixtures assim:
george: # generated id: 503576764 name: George the Monkey reginald: # generated id: 324201669 name: Reginald the Pirate
A partir da próxima versão do Rails, o ActiveRecord irá até a classe correspondente à fixture e recuperará o campo que representa o primary key, inserindo o registro no banco corretamente.
O ID gerado é uma constante, então nós podemos descobrir o ID de qualquer fixture sem carregar nada, desde que saibamos qual o nome que foi dado ao registro.
Associações entre fixtures através dos nomes
Especificar um relacionamento entre fixtures é problemático e frágil, sem contar a dificuldade para se ler. E já que podemos remover o ID das fixtures, utilizando somente o nome, também poderemos realizar as associações diretamente pelo nome, assim:
### pirates.yml reginald: name: Reginald the Pirate monkey: george ### monkeys.yml george: name: George the Monkey pirate: reginald
E se tivermos um relacionamento has_and_belongs_to_many podemos fazer assim:
### monkeys.yml george: name: George the Monkey pirate: reginald fruits: apple, orange, grape ### fruits.yml apple: name: apple orange: name: orange grape: name: grape
Muito legal né?
Colunas do timestamp preenchidas automaticamente
Se sua tabela tiver qualquer uma das colunas no formato padrão dos timestamps do Rails (created_at, created_on, updated_at, updated_on), elas serão automaticamente preenchidas com um Time.now.
Se você quiser um valor diferente deste, você vai precisar fazer da forma antiga, preenchendo o valor na fixture.
Suporte aos padrões do YAML
Você com certeza sabe como usar o YAML para reutilizar informações no seu arquivo database.yml. Agora você também pode fazer o mesmo em suas fixtures:
DEFAULTS: &DEFAULTS created_on: <%= 3.weeks.ago.to_s(:db) %> first: name: Smurf <<: *DEFAULTS second: name: Fraggle <<: *DEFAULTS
Estas são algumas das novidades que nos aguardam, mas não acabou, muita coisa ainda deve mudar até a versão 2.0. Estou acompanhando de perto...
Tudo isto e mais um pouco pode ser encontrado aqui.

1 Comentário em "O que vem por aí? Novidades nas Fixtures"
É isso aí!! A cada novo post sobre as novidades do Rails 2.0, fico mais ansioso para a chegada definitiva dessa ferramenta!!
Um abraço,
Felipe Giotto
Deixe o seu comentário!