2017-07-03 1 views
0

私はmongoDBを使ってmongoid gemを使用している。私はbrewを使ってOSX上でMongoDBをセットアップしました。私はサーバからデータダンプを取り出し、それをローカルマシンに復元しました。 mongoシェルを使用してデータベースに存在するデータを表示できます。しかし、私はレールのコンソールを使用してデータを取得しても、何も返されません。Rongs Consoleはmongodbに存在するデータを表示しません

例このコマンドを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 
+0

'network'モデルのコードを投稿できますか? – Pavan

+0

'mongoid.yml'が' production' envにのみ読み込まれていると思います。 'RAILS_ENV = production bundle exec irb'を実行してみてください。 – mudasobwa

+0

@mudasobwa rails consoleコマンドはデフォルトで開発モードで実行されます。 –

答えて

0

として記述されている、あなたは、レールコンソールにアクセスする際、開発にレールの環境を設定する必要があります。

これを行う方法は2つあります。(1)コマンドの前に環境変数RAILS_ENV=developmentを設定するか、エクスポートすることができます。 (2)もう1つの方法は、-eフラグの後ろに希望の環境を使用しているため、開発環境のrailsコンソールを使用しようとすると、bundle exec rails c -e development

となります。

+0

デフォルトで環境を指定せずにrails consoleを起動すると、開発モードで起動します。 –

+0

これはあなたのアプリケーション構成に依存します。これは、RAILS/config/application.rb –

0

とても奇妙に思えるかもしれませんが、ノートパソコンを再起動すると問題は解決しました。

関連する問題