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

时间:2017-07-03 10:12:11

标签: ruby-on-rails ruby mongodb mongoid ruby-on-rails-5

我正在使用mongoid gem在MongoDB上使用rails。我已经使用brew在OSX上设置了MongoDB。我从服务器上获取数据转储并在本地机器上恢复它。我可以使用mongo shell查看数据库中的数据。但是当我使用rails console获取数据时,它什么也没有返回。

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

Network.all.to_a 

在数据库中有1条属于网络集合的记录。 mongoid.yml中提到的数据库与mongo shell中显示的数据库相同。

网络模型描述为

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

2 个答案:

答案 0 :(得分:0)

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

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

我希望有所帮助。

答案 1 :(得分:0)

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