2013-02-12 163 views
0

在我的config/database.yml文件中我需要檢索當前的文件路徑。我已經試過這樣: 如何在使用ERB的YAML文件中獲取當前文件路徑?

<% 
    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

@MrYoshiji你可以使用'<% %>'和''<%= %>標籤 – codeit 2013-02-12 15:26:45

+0

好@checkit我刪除了(無用)評論使用Ruby/ERB代碼YAML文件,感謝 – MrYoshiji 2013-02-12 15:28:28

+0

檢查http://stackoverflow.com/questions/592554/best-way-to-create-custom-config-options-for-my-rails-app有一個更好的方式來定製環境 – 2013-02-12 15:34:43

回答

0

如果任何人發現這一點,這裏是如何我最終做到了:

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 
相關問題