如何使用ERB在YAML文件中获取当前文件路径?

时间:2013-02-12 15:18:55

标签: ruby-on-rails yaml erb

在我的config/database.yml文件中,我需要检索当前文件路径。我试过这个:

<%
  logger = Logger.new(STDOUT)
  logger.debug __FILE__
%>

输出(erb)而不是./config/database.yml

我知道我可以使用

获取文件路径
Rails.root.join('config', 'database.yml')

但这并不令人满意,因为它不是动态的。

此处的目标是获取文件所有者的unix名称,以便将其用作数据库名称的前缀,以便多个开发人员可以使用不同的数据库,而不会有提交不需要的更改的风险:

development:
    database: <%= Etc.getpwuid(File.stat(__FILE__).uid).name %>_project_db

1 个答案:

答案 0 :(得分:1)

如果有人发现这一点,我最后是这样做的:

application.rb

class Application < Rails::Application
  config.whoami = Etc.getpwuid(File.stat(__FILE__).uid).try(:name)
  config.whoami.try(:downcase!)

  [...]
end

database.yaml

development:
  database: <%= Rails.application.config.whoami %>_project_db