Рельсы консольные и mongodb - PullRequest
       3

Рельсы консольные и mongodb

2 голосов
/ 17 февраля 2012

У меня небольшая проблема с Rails и mongodb.У меня есть небольшое приложение, которое прекрасно работает в режиме разработки.Он также работает в производственном режиме, но когда я вхожу в консоль rails, я ничего не вижу в ней.

user-001@marcus:/var/www/webapp% rails c RAILS_ENV="production"
You did not specify how you would like Rails to report deprecation notices for your       RAILS_ENV=production environment, please set config.active_support.deprecation to :log,    :notify or :stderr at config/environments/RAILS_ENV=production.rb
Loading RAILS_ENV=production environment (Rails 3.2.1)
1.9.3p0 :001 > User.all
=> [] 

мой config / initialize / mongo.rb выглядит так

MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
MongoMapper.database = "webapp-#{Rails.env}"

if defined?(PhusionPassenger)
     PhusionPassenger.on_event(:starting_worker_process) do |forked|
     MongoMapper.connection.connect if forked
end
end

но он также выглядит пустым

 $ mongo localhost:27017/mail1up-production
 MongoDB shell version: 1.8.2
 Fri Feb 17 18:26:00 *** warning: spider monkey build without utf8 support.  consider        rebuilding with utf8 support
 connecting to: localhost:27017/webapp-production
 > db.mycollection.stats()
 { "errmsg" : "ns not found", "ok" : 0 }
 > 

Я что-то не так делаю?Почему я не вижу данные в базе данных?Как я могу проверить это?

Ответы [ 2 ]

7 голосов
/ 05 июня 2012

Я думаю, это может быть связано с синтаксисом вашего запроса.Я просто столкнулся с тем же, где пытался использовать обычные запросы ActiveRecord.Я использую MongoDB с Mongoid в качестве моего ORM.

Этот другой вопрос относится к вашему, хотя он также использует Mongoid: mongoid-finders-not-*

Я нашел успех, используя следующее для запроса "все":

User.all.to_a

1 голос
/ 24 февраля 2012

Похоже, вам нужно запустить mmconsole.

Затем вы попадете в irb с включенным MongoMapper и вашей базой данных, настроенной на «mm-test».

В вашей ситуацииможет случиться так, что ваш инициализатор mongo.rb не соблюдается и вы подключены к базе данных mm-test вместо "webapp - # {Rails.env}".

Я получил часть этой информации здесь

...