Um dos princípios do desenvolvimento em Rails é o DRY (don’t repeat yourself). A idéia é que você nunca repita o código que já escreveu uma vez, procurando reaproveitar sempre que possível.
No caso das views, por exemplo, isso é bem simples de implementar, através do uso de partials. Você deve criar um arquivo de view começando com “_” (ex: _item.rhtml) e usar o comando render em outra view para carregar o partial dentro do layout (ex: render :partial => ‘item’).
Outro dia descobri uma maneira muito interessante de usar essa técnica no arquivo database.yml. Esse arquivo mantém as configurações de banco de dados para cada um dos ambientes – development, test e production. Porém, geralmente alguns destes parâmetros de configuração são iguais. O adapter, por exemplo, muito provavelmente é o mesmo; o username, senha e host também podem se repetir.
Segue abaixo um exemplo de como definir estas configurações sem repetições:
login: &login adapter: mysql username: username password: password host: mysql.example.com development: <<: *login database: app_dev test: <<: *login database: app_test production: <<: *login database: app_prod
Só encontrei um problema: se você usar o Aptana RadRails para desenvolver, usando essa técnica, o modo “Data perspective”, que permite analisar a estrutura do banco de dados e executar querys, retorna uma mensagem de erro (“Invalid YML syntax”). Fora isso, está tudo funcionando bem. No NetBeans não há este problema.
Just to let you know, I’ve just checked in a bug fix for this in RadRails. It should work as expected in RadRails 1.0 when we release that (in roughly 1-2 weeks).
OK Chris, thanks for the feedback. I’ll test it again as soon as it’s fixed