2014-04-02 10 views
5

Ich arbeite an ROR und übrigens habe ich meine Bundles mit bundle update Befehl aktualisiert, ich habe Nachricht, dass Bundles sind auf dem neuesten Stand, aber wenn ich versuche, meine Rails Server rails s starten es wirft mich einen Fehler:Ruby on Rails Bundles Downgrade

/var/lib/gems/1.9.1/gems/devise-3.2.4/lib/devise/models.rb:88:in `const_get': uninitialized constant Devise::Models::TokenAuthenticatable (NameError) 

Bitte sagen Sie mir, was ich tun muss, um dies zu lösen. Ich habe viel R & D auf diesem getan, aber keine Antwort bekommen. Ich habe Schienen mit sudo apt-get install rails nicht RVM installiert. Ich denke, es gibt eine Möglichkeit, die Rails-Version mit RVM herunterzustufen.
bitte helfen.

+0

Wie Sie erwähnt haben Sie nicht verwenden rvm dann, wie Sie können Grad nach unten? . Um eine bestimmte Schienenversion zu installieren, müssen Sie etwas wie Edelsteininstallationsschienen tun -v '3.2.16' –

+0

Danke Sabyasachi, aber ist neu in Schienen, und Schienen funktionierte gut vor Aktualisierung der Bündel, wenn ich den Befehl führe, um das Bündel zu aktualisieren es aktualisiert alle meine Bündel und jetzt, wenn ich den Schienenbediener starte, wirft es mir einen Fehler, wie ich erwähnte. Bitte sagen Sie mir, wie kann ich meine Bundles mit vorherigen herunterstufen. –

+0

Entfernen Sie einfach die Gemfile.lock und führen Sie die Bundle-Installation aus und lassen Sie mich wissen, ob sie funktioniert oder nicht. –

Antwort

7

Per dieser link:

TokenAuthenticatable wurde von Devise entfernt. Wenn Sie es also in Ihrer Anwendung verwenden, müssen Sie es entfernen.

devise :database_authenticatable, :registerable, 
-   :recoverable, :rememberable, :token_authenticatable 

:token_authenticatable sollte entfernt werden.

Siehe auch link auch.

Wenn es lokal funktioniert, bedeutet es wahrscheinlich, dass ein altes Juwel geladen wird - stellen Sie sicher, dass Ihre Edelsteine ​​nicht eine alte Version von Devise enthalten und in Ihrer Gemfile bitte nur die Version gem 'devise' angeben.

Dann für Ruby Version Herabstufung, müssen Sie RVM in Ihrem Computer installieren,

Bitte beachten Sie die unten stehenden Links verweisen RVM und verschiedene Versionen von Ruby installieren Sie es. Dann können Sie geeignete Ruby-Versionen für verschiedene Projekte verwenden. Keine Notwendigkeit, die systeminstallierte Ruby-Version herunterzustufen. Sie können auch die System-Ruby-Version verwenden, wenn Sie sie benötigen. (rvm use system)

http://rvm.io/rvm/install

https://rvm.io/rubies/installing

http://rvm.io/rvm/basics

Hoffe, es hilft :)

+0

@Shiv Aggarwal: Antwort aktualisiert. funktioniert es für Sie? –

+0

Rajesh seinen guten Vorschlag Ich wusste dies, aber ich will, dass das Projekt richtig, wie es ist.Ich verwende viele andere Edelsteine Mit RVM denke ich, dass ich mich überall ändern muss ... Mein Projekt befindet sich im Endstadium und ich empfehle es, wenn es korrekt wird. –

+1

@ShivAggarwal: Hey, es ist keine große Sache, niedrigere Versionen von Ruby mit RVM zu installieren. Nach allem, was du willst, oder? Installieren Sie einfach RVM und installieren Sie die Ruby-Version (auf die Sie downgraden möchten) und führen Sie im Projektordner einfach 'rvm use 1.8.7' aus und führen Sie die Bundle-Installation aus. Überprüfen Sie diesen Link http://octopress.org/docs/setup/rvm/. Es dauert nur 5 Minuten, um es zu tun. Wenn Probleme auftreten, verwenden Sie die System-Ruby-Version selbst, indem Sie 'rvm use system' ausführen. Wenn es dir richtig hilft, akzeptiere die Antwort. –