0

我在 Ubuntu 的 /opt 目录中有一个 test.yaml 文件,其中有我的数据库设置,我在 environment.rb 中获取该文件,如图所示

require File.expand_path('../application', __FILE__)
class Settings
raw_config = File.read("/opt/test.yml")
erb_config = ERB.new(raw_config).result
settings = YAML.load(erb_config)[::Rails.env]
 if settings
  settings.each  do |name, value|
  puts "checking array" , name, value
  instance_variable_set("@#{name}", value)
  self.class.class_eval { attr_reader name.intern }
 end
 end
end

现在在 mongoid.yml 文件中,我想使用该类,如代码所示

development:
 sessions:
  default:
   hosts:
    -Settings.sessions["default"]["hosts"]
  username: ve
  password: "123456"
  database: weather

但出现这样的错误 Moped::Errors::ConnectionFailure (Could not connect to any secondary or primary nodes for replica set ]>):

我是一个新人,卡在那里。任何帮助将不胜感激。谢谢

4

1 回答 1

0

理论:

他们的关键是删除mongod.lock文件并再次启动 mongodb 服务。Ubuntu 中的锁定文件位于/var/lib/mongod.lock.

细节:

我在 Ubuntu 下遇到了同样的错误,这就是我所做的:

vagrant@lucid32:~$ sudo service mongodb restart
restart: 未知实例:

vagrant@lucid32:~$ sudo rm /var/lib/mongod.lock

vagrant@lucid32:~$ sudo service mongodb start
mongodb start/running, process 2340

vagrant@lucid32:~$ sudo service mongodb restart
mongodb start/running, process 2368

于 2013-05-20T09:30:57.580 回答