【问题标题】:How do i get current file path in a YAML file using ERB?如何使用 ERB 获取 YAML 文件中的当前文件路径?
【发布时间】:2013-01-27 22:46:09
【问题描述】:

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

【问题讨论】:

  • @MrYoshiji 您可以使用&lt;% %&gt; 和&lt;%= %&gt; 标签在yaml 文件中使用ruby/erb 代码
  • 好的@checkit 我删除了我的(无用的)评论,谢谢
  • 检查 stackoverflow.com/questions/592554/… 以获得自定义环境的更好方法
  • @Crystark 是否给出任何错误.. 尝试:'&lt;%= Etc.getpwuid(File.stat(__FILE__).uid).name %&gt;_project_db'
  • @checkit 引发以下错误:No such file or directory - (erb)

标签: ruby-on-rails yaml erb


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多