Rails、Mongoid、使用环境变量进行数据库配置会抛出 NoMethodError

Mr.*_*r.D 1 ruby capistrano ruby-on-rails bundler mongoid

我正在尝试将使用 mongoid 的 Rails 应用程序部署到我的远程生产服务器。

在我的中mongoid.yml我添加了这个:

hosts:
    - <%= ENV['MONGOSERVER_PORT_27017_TCP_ADDR'] %>:27017
Run Code Online (Sandbox Code Playgroud)

当我启动 Capistrano 时,它会抛出以下错误:

SSHKit::Command::Failed: rake exit status: 1
rake stdout: rake aborted!
NoMethodError: undefined method `split' for :"27017":Symbol
Run Code Online (Sandbox Code Playgroud)

添加下划线会导致此错误发生吗?

Gly*_*oko 5

看起来环境变量为零,所以它只是读取:

hosts:
    - :27017
Run Code Online (Sandbox Code Playgroud)

它认为主人是一个象征,这是在抛弃它。

仔细检查您的环境变量是否设置正确,并尝试在主机周围加上引号:

hosts:
    - "<%= ENV['MONGOSERVER_PORT_27017_TCP_ADDR'] %>:27017"
Run Code Online (Sandbox Code Playgroud)