2015-12-30 2 views
0

Я новичок в Mongo. Я установил Mongodb от источника this. Я использую приложение mongodb для Rails. Приложение загружается отлично после запуска mongodb и рельсов. Однако при попытке входа в систему это терпит неудачу. То же самое происходит, когда я пытаюсь выполнить некоторые операции в консоли rails.«Mongo :: OperationFailure» для некоторых действий в Rails

Вот код модели:

def self.authenticate(email, password) 
    user = find(:first, :conditions => {:email => email}) 
    if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt) 
     user 
    else 
    nil 
    end 
    end 

Его неудача на if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt)

Вот короткая ошибка:

Database command 'create' failed: {"ok"=>0.0, "errmsg"=>"collection already exists", "code"=>48}

И, полный след ошибки приложения:

mongo (1.3.1) lib/mongo/db.rb:506:in command' mongo (1.3.1) lib/mongo/db.rb:284:in create_collection' mongoid (2.2.1) lib/mongoid/collections/master.rb:41:in initialize' mongoid (2.2.1) lib/mongoid/collection.rb:127:in new' mongoid (2.2.1) lib/mongoid/collection.rb:127:in master' mongoid (2.2.1) lib/mongoid/collection.rb:60:in find_one' mongoid (2.2.1) lib/mongoid/contexts/mongo.rb:164:in first' mongoid (2.2.1) lib/mongoid/criteria.rb:42:in one' mongoid (2.2.1) lib/mongoid/criterion/inclusion.rb:104:in find' mongoid (2.2.1) lib/mongoid/finders.rb:83:in find' actionpack (3.0.3) lib/action_controller/metal/implicit_render.rb:4:in send_action' actionpack (3.0.3) lib/abstract_controller/base.rb:151:in process_action' actionpack (3.0.3) lib/action_controller/metal/rendering.rb:11:in process_action' actionpack (3.0.3) lib/abstract_controller/callbacks.rb:18:in block in process_action' activesupport (3.0.3) lib/active_support/callbacks.rb:435:in _run__902337259577170033__process_action__4476240526817474042__callbacks' activesupport (3.0.3) lib/active_support/callbacks.rb:409:in _run_process_action_callbacks' activesupport (3.0.3) lib/active_support/callbacks.rb:93:in run_callbacks' actionpack (3.0.3) lib/abstract_controller/callbacks.rb:17:in process_action' actionpack (3.0.3) lib/action_controller/metal/instrumentation.rb:30:in block in process_action' activesupport (3.0.3) lib/active_support/notifications.rb:52:in block in instrument' activesupport (3.0.3) lib/active_support/notifications/instrumenter.rb:21:in instrument' activesupport (3.0.3) lib/active_support/notifications.rb:52:in instrument' actionpack (3.0.3) lib/action_controller/metal/instrumentation.rb:29:in process_action' actionpack (3.0.3) lib/action_controller/metal/rescue.rb:17:in process_action' actionpack (3.0.3) lib/abstract_controller/base.rb:120:in process' actionpack (3.0.3) lib/abstract_controller/rendering.rb:40:in process' actionpack (3.0.3) lib/action_controller/metal.rb:138:in dispatch' actionpack (3.0.3) lib/action_controller/metal/rack_delegation.rb:14:in dispatch' actionpack (3.0.3) lib/action_controller/metal.rb:178:in block in action' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:62:in call' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:62:in dispatch' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:27:in call' rack-mount (0.6.14) lib/rack/mount/route_set.rb:148:in block in call' rack-mount (0.6.14) lib/rack/mount/code_generation.rb:93:in block in recognize' rack-mount (0.6.14) lib/rack/mount/code_generation.rb:75:in optimized_each' rack-mount (0.6.14) lib/rack/mount/code_generation.rb:92:in recognize' rack-mount (0.6.14) lib/rack/mount/route_set.rb:139:in call' actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:492:in call' mongoid (2.2.1) lib/rack/mongoid/middleware/identity_map.rb:33:in block in call' mongoid (2.2.1) lib/mongoid.rb:130:in unit_of_work' mongoid (2.2.1) lib/rack/mongoid/middleware/identity_map.rb:33:in call' actionpack (3.0.3) lib/action_dispatch/middleware/best_standards_support.rb:17:in call' actionpack (3.0.3) lib/action_dispatch/middleware/head.rb:14:in call' rack (1.2.4) lib/rack/methodoverride.rb:24:in call' actionpack (3.0.3) lib/action_dispatch/middleware/params_parser.rb:21:in call' actionpack (3.0.3) lib/action_dispatch/middleware/flash.rb:182:in call' actionpack (3.0.3) lib/action_dispatch/middleware/session/abstract_store.rb:149:in call' actionpack (3.0.3) lib/action_dispatch/middleware/cookies.rb:295:in call' actionpack (3.0.3) lib/action_dispatch/middleware/callbacks.rb:46:in block in call' activesupport (3.0.3) lib/active_support/callbacks.rb:415:in _run_call_callbacks' actionpack (3.0.3) lib/action_dispatch/middleware/callbacks.rb:44:in call' rack (1.2.4) lib/rack/sendfile.rb:106:in call' actionpack (3.0.3) lib/action_dispatch/middleware/remote_ip.rb:48:in call' actionpack (3.0.3) lib/action_dispatch/middleware/show_exceptions.rb:46:in call' railties (3.0.3) lib/rails/rack/logger.rb:13:in call' rack (1.2.4) lib/rack/runtime.rb:17:in call' activesupport (3.0.3) lib/active_support/cache/strategy/local_cache.rb:72:in call' rack (1.2.4) lib/rack/lock.rb:11:in block in call' rack (1.2.4) lib/rack/lock.rb:11:in synchronize' rack (1.2.4) lib/rack/lock.rb:11:in call' actionpack (3.0.3) lib/action_dispatch/middleware/static.rb:30:in call' railties (3.0.3) lib/rails/application.rb:168:in call' railties (3.0.3) lib/rails/application.rb:77:in method_missing' railties (3.0.3) lib/rails/rack/log_tailer.rb:14:in call' rack (1.2.4) lib/rack/content_length.rb:13:in call' rack (1.2.4) lib/rack/handler/webrick.rb:52:in service' /Users/reonios/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/webrick/httpserver.rb:138:in service' /Users/reonios/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/webrick/httpserver.rb:94:in run' /Users/reonios/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'

Любая помощь высоко оценена.

+0

Можете ли вы показать модель и код? –

+0

@HarryBomrah Я добавил код модели – raghu

ответ

0

После проверки кода и googling я обнаружил, что в каждом запросе был отправлен специальный символ. Мои параметры запроса были такими:

{ 
    "utf8"=>"✓", 
    "authenticity_token"=>"cAcdDOzfBgalF5em+97mTKw9DAjymfmEmG6hc+dDqhQ=", 
    "email"=>"[email protected]", 
    "password"=>"[FILTERED]", 
    "commit"=>"Login" 
} 

Не знаете, что вызвало «â». Но одно из сообщений в google говорит, что есть ошибка, связанная с этим присутствием в серии 2.2, и исправлена ​​с более поздними версиями.

Итак, я нашел мою версию mongoid версии 2.2.1, и как только я ее обновил, проблема была решена.

ПРИМЕЧАНИЕ: Является новым для mongoid и дал решение с минимальными знаниями. При необходимости добавьте данные.

Смежные вопросы