Rails DRY Up Your Database Configuration

由于database.yml十分小巧,我们很容易忘掉它是用YAML这种非常健壮的标记语言来写的。

YAML有一个叫"merge keys"的特性,它可以merge one Hash into another。

例如:

Java代码
  1. development:  
  2.   adapter: mysql  
  3.   database: DRYUpYourDatabaseConfig_development  
  4.   username: root  
  5.   password: secret  
  6.   socket: /tmp/mysql.sock  
  7.   
  8. test:  
  9.   adapter: mysql  
  10.   database: DRYUpYourDatabaseConfig_test  
  11.   username: root  
  12.   password: secret  
  13.   socket: /tmp/mysql.sock  
  14.   
  15. production:  
  16.   adapter: mysql  
  17.   database: DRYUpYourDatabaseConfig_production  
  18.   username: root  
  19.   password: secret  
  20.   socket: /tmp/mysql.sock  

我们可以利用YAML的"merge keys"特性简化配置和减少冗余:
Java代码
  1. defaults: &defaults  
  2.   adapter: mysql  
  3.   username: root  
  4.   password: secret  
  5.   socket: /tmp/mysql.sock  
  6.   
  7. development:  
  8.   database: DRYUpYourDatabaseConfig_development  
  9.   <<: *defaults  
  10.   
  11. test:  
  12.   database: DRYUpYourDatabaseConfig_test  
  13.   <<: *defaults  
  14.   
  15. production:  
  16.   database: DRYUpYourDatabaseConfig_production  
  17.   <<: *defaults  

 

posted @ 2009-07-01 21:34  麦飞  阅读(208)  评论(0编辑  收藏  举报