Ruby on rails Rails控制台不显示mongodb中存在的数据
我正在使用mongoid gem与MongoDB一起在rails上工作。我已经使用brew在OSX上设置了MongoDB。我从服务器获取了数据转储,并在本地计算机上恢复了它。我可以使用mongo shell查看数据库中的数据。但当我使用rails控制台获取数据时,它什么也不返回 例如,当我在rails控制台中运行此命令时,得到的结果为[]。服务器上的同一命令给出1条记录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
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