Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails控制台不显示mongodb中存在的数据_Ruby On Rails_Ruby_Mongodb_Mongoid_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails Rails控制台不显示mongodb中存在的数据

Ruby on rails Rails控制台不显示mongodb中存在的数据,ruby-on-rails,ruby,mongodb,mongoid,ruby-on-rails-5,Ruby On Rails,Ruby,Mongodb,Mongoid,Ruby On Rails 5,我正在使用mongoid gem与MongoDB一起在rails上工作。我已经使用brew在OSX上设置了MongoDB。我从服务器获取了数据转储,并在本地计算机上恢复了它。我可以使用mongo shell查看数据库中的数据。但当我使用rails控制台获取数据时,它什么也不返回 例如,当我在rails控制台中运行此命令时,得到的结果为[]。服务器上的同一命令给出1条记录 Network.all.to_a 而数据库中有1条记录属于网络集合。 mongoid.yml中提到的数据库与mongosh

我正在使用mongoid gem与MongoDB一起在rails上工作。我已经使用brew在OSX上设置了MongoDB。我从服务器获取了数据转储,并在本地计算机上恢复了它。我可以使用mongo shell查看数据库中的数据。但当我使用rails控制台获取数据时,它什么也不返回

例如,当我在rails控制台中运行此命令时,得到的结果为[]。服务器上的同一命令给出1条记录

Network.all.to_a 
而数据库中有1条记录属于网络集合。 mongoid.yml中提到的数据库与mongoshell中显示的数据库相同

网络模型描述为

class Network
 include Mongoid::Document
 include Mongoid::Timestamps
 has_many :network_devices
 field :network_id, type: String
 field :node_mac, type: String
 field :version, type: String
end

如果您的数据在开发数据库中,那么在访问rails控制台时需要将rails的环境设置为开发环境

我知道有两种方法可以做到这一点,(1)在您的命令设置环境变量之前,
RAILS\u ENV=development
,或者您可以将其导出。(2) 另一种方法是使用
-e
标志,然后是所需的环境,因此如果您试图使用开发环境rails控制台,那么它将是
bundle exec rails c-e development


我希望这会有所帮助。

所以这看起来很奇怪,但重启我的笔记本电脑解决了问题。

你能发布
网络
模型的代码吗?我相信
mongoid.yml
仅加载在
生产
环境中。尝试运行:
RAILS\u ENV=production bundle exec irb
@mudasobwa RAILS控制台命令be default在开发模式下运行。当我们启动RAILS控制台时,默认情况下不指定环境,它在开发模式下启动。这将取决于您的应用程序配置,我指的是RAILS/config/application.rb