【问题标题】:Embedded Ruby in database.yml not being parsed in RubyMinedatabase.yml 中的嵌入式 Ruby 未在 RubyMine 中解析
【发布时间】:2015-05-17 20:45:20
【问题描述】:

我正在使用 RubyMine 7.0.4 构建一个使用 Postgres 作为我的数据库的 Rails(4.2.0) 应用程序。我正在使用环境变量来保存我的本地配置(DB_USERNAME 和 DB_PASSWORD),但 RubyMine 无法解析 database.yml 文件中嵌入的 ruby​​。

database.yml 摘录:

...
development:
  <<: *default
  database: my_app_development
  username: <%= ENV['DB_USERNAME'] %>
  password: <%= ENV['DB_PASSWORD'] %>
...

我什至尝试将其切换到 标记中的实际凭据,但同样的问题:

...
development:
  <<: *default
  database: my_app_development
  username: <%= 'my_app' %>
  password: <%= 'password' %>
...

这似乎是一个 RubyMine 问题,因为一切都从命令行完美执行/应用程序运行良好。不过,我喜欢将我的数据库与 IDE 集成,所以如果我能让它再次工作,那就太好了。

我可以做些什么来执行嵌入的 ruby​​ 而不是将其视为字符串?

【问题讨论】:

  • 尝试将你的 database.yml 重命名为 database.yml.erb。我记得文件是从右到左读取的:这意味着,首先您的 被读取并放入“正常”yaml。
  • 这是个好主意。我只是尝试重命名它,但没有任何变化——我的应用程序仍然可以理解 yaml 中的 erb,但 RubyMine 不能。

标签: ruby-on-rails postgresql rubymine


【解决方案1】:

这是 RubyMine 中的一个错误,遗憾的是尚未修复。

更多信息请参考https://youtrack.jetbrains.com/issue/RUBY-9223

到目前为止,我设法提出的唯一解决方法是将 database.yml 添加到您的 .gitignore 文件中(如果您将项目推送到远程仓库)并将用户名和密码存储为纯文本。

第二种方法可能只是将您的 db_password 和 db_username 作为纯文本输入用于开发和测试数据库,并将 ENV["DB_USERNAME"] 和 ENV["DB_PASSWORD"] 仅用于生产数据库。

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2017-05-10
    • 2013-02-17
    • 1970-01-01
    相关资源
    最近更新 更多