在我的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
答案 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