2016-04-28 2 views
1

У меня есть эти модели:Rails_admin неопределенный метод `объединения для ноль: NilClass

Class A 
    embeds_many :b 
end 

Class B 
    belongs_to :c 
end 

Class C 
end 

я работаю с rails_admin и Mongoid. В админ, когда я пытаюсь получить список записей, C, когда я создаю Экземпляр я получаю эту ошибку:

Это происходит только по производству envirnment не в развитии

NoMethodError (undefined method `associations' for nil:NilClass): 
     /home/pablo/.rvm/gems/[email protected]/bundler/gems/rails_admin-355dc80f8a20/lib/rails_admin/adapters/mongoid/abstract_object.rb:10:in `initialize' 
     /home/pablo/.rvm/gems/[email protected]/bundler/gems/rails_admin-355dc80f8a20/lib/rails_admin/adapters/mongoid.rb:24:in `new' 
     /home/pablo/.rvm/gems/[email protected]/bundler/gems/rails_admin-355dc80f8a20/lib/rails_admin/adapters/mongoid.rb:24:in `get' 
     /home/pablo/.rvm/gems/[email protected]/bundler/gems/rails_admin-355dc80f8a20/app/controllers/rails_admin/main_controller.rb:138:in `get_association_scope_from_params' 

ответ

1

Взятие посмотрите на код rails_admin, мы можем увидеть этот фрагмент кода в mongoid.rb файл.

def get(id) 
     AbstractObject.new(model.find(id)) 
     rescue => e 
     raise e if %w(
      Mongoid::Errors::DocumentNotFound 
      Mongoid::Errors::InvalidFind 
      Moped::Errors::InvalidObjectId 
      BSON::InvalidObjectId 
     ).exclude?(e.class.to_s) 
     end 

Если обратить внимание на этот код, мы можем видеть, что Model.find (идентификатор) должен произвести Mongoid :: Ошибки :: DocumentNotFound, если документ не существует по умолчанию.

Однако в mongoid вы можете избежать повышения этой ошибки с помощью raise_not_found_error: true в файле конфигурации mongo, это дает неопределенный метод класса nil.

Tracking issue on github

+0

огромное спасибо! Я много часов борется с этими ошибками, и, похоже, никто раньше этого не испытывал. – hcarreras

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

  • Нет связанных вопросов^_^