Rails 自定义 yml 文件里读取<%= ENV ['XX'] %>的问题

macknight · 2015年03月01日 · 最后由 macknight 回复于 2015年03月04日 · 3498 次阅读

众所周知,在 database.yml 文件里在写 password 时,经常会以<%= ENV['pass_word'] %>替代,以使得代码不含有密码。

但是,在我自定义的 server.yml 文件里,我也这么写了一个 XX: <%= ENV['XX'] %>

然后我在 controller 中, the_X = YAML.load_file("#{Rails.root.to_s}/config/server.yml")[Rails.env]['XX'] 这个取到的值 the_X 不是环境变量的值,而是"<%= ENV['XX'] %>"这个字符串,这个如何解决呢?

求高手解答

人家那个是部署的时候用 ERB 执行过的吧

这是 ERB 的语法,rails 默认让 yml 文件都先经过 erb 执行一遍,你可以用这个方法加载 yml,顺便看看他的源码。 http://api.rubyonrails.org/classes/Rails/Application.html#method-i-config_for

#2 楼 @Rei 哇,原来还有这个

#2 楼 @Rei config_for 太赞了!

#4 楼 @huacnlee 我安装 backbone-on-rails 时,如果源是 taobao 镜像的话会报错,原始的 rubygem 源则不会,这是为何?按理说 taobao 镜像不是和 rubygem 源一致的吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号