2014-04-27 15 views
6

Właśnie aktualizowana szynach 3 do szyn 4. Wszystko działa lokalnie, ale rozmieszczone na Heroku, pojawia się następujący błąd:niezainicjowany stała motorowerem :: BSON w szynach 4 aplikacja na Heroku

ActionView::Template::Error (uninitialized constant Moped::BSON): 
3: %nav.navbar-collapse 
4: %ul.nav 
5:  %li 
6:  - if user_signed_in? 
7:   = link_to 'Logout', destroy_user_session_path, :method=>'delete' 
8:  - else 
9:   = link_to 'Login', new_user_session_path 
app/views/layouts/_navigation.html.haml:6:in `_app_views_layouts__navigation_html_haml___1118031947301940708_70104067139880' 
app/views/layouts/application.html.haml:18:in `_app_views_layouts_application_html_haml__1093647294459268715_70104069850820' 

Ten sam błąd występuje w innych plikach haml kiedy dostęp current_user - jeśli current_user ...

+0

I używam narzędzia 3.2.4 i szyn 4.1.0 –

+0

Również, używając mongoid (4.0.0.beta1) –

Odpowiedz

11

następujące pracował dla mnie:

dodać do Gemfile:

gem "bson" 
gem "moped", github: "mongoid/moped" 

pakiet zainstalować

dodatek do environment.rb:

require "bson" 
require "moped" 
Moped::BSON = BSON 

Odpowiedź: https://github.com/mongoid/mongoid/issues/3455

+0

Dlaczego "alias" Moped :: BSON do BSON? dlaczego nie wystarczy naprawić główny problem i zmienić kod, aby odnosić się do BSON, a nie Moped :: BSON? –

5

Ten błąd może być również spowodowane przez mający odniesienia do Moped::BSON w odcinkach cookie/sesji. Usunięcie plików cookie powoduje ich usunięcie.

5

Zobacz ten komentarz od autora motorower jako motoroweru 2.0.0 (która to wersja, jak to pisze, używany jako kierowca w mongoid 4.0.0):

Moped's BSON implementation has been removed in favor of the 10gen bson gem 2.0 and higher. All Moped::BSON references should be changed to just BSON. 

https://github.com/mongoid/moped/blob/master/CHANGELOG.md

+0

Tak, ta odpowiedź jest właściwa. Rozwiązaniem jest użycie "BSON :: ObjectId" zamiast "Moped :: BSON :: ObjectId" dla wersji trwającej Mongoid. –

Powiązane problemy