日期:2014-05-16 浏览次数:20471 次
Rails数据库配置文件config/database.yml是个YAML文件。但是它在成为YAML解析器之前,它要使用Erb进行预处理操作。这意味着你可以植入Ruby代码到这类文件中,就像你的视图模板那样,给了你一种足够强大的语言。
?
假如你一起与三个开发团队工作。你们在苹果机上工作,因此你们的配置基本上是相同的。但有时候你们发现自己在Linux环境上进行开发,并且你们的配置有变化。这很讨厌,因为你们的database.yml文件都需要指向不同的MySQL socket文件。如果你们中的某个人在一个地方进行了修改,那么下个要更新的人就会遇到错误信息。
?
所以现在我们在database.yml文件内使用Erb来寻找存储在各种计算机上存储在任何地方的MySQL socket文件,然后选择正确的一个。
?
development: adapter: mysql encoding: utf8 database: test pool: 5 username: root password: root socket: <%= ["/tmp/mysqld.sock", "/tmp/mysql.sock", "/var/run/mysqld/mysqld.sock", "/var/lib/mysql/mysql.sock"].detect{|socket| File.exist?(socket) } %>