2014-04-02 28 views
5

Pracuję nad ROR i przypadkowo uaktualniłem swoje pakiety za pomocą polecenia bundle update, otrzymałem komunikat, że pakiety są aktualne, ale kiedy próbuję uruchomić mój serwer szyn rails s, powoduje to błąd:Pakiety Ruby on Rails 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) 

Proszę mi powiedzieć, co muszę zrobić, aby rozwiązać ten problem. Zrobiłem dużo R ​​& D na tym, ale nie dostaję żadnej odpowiedzi. Zainstalowałem szyny z sudo apt-get install rails, a nie RVM. Myślę, że istnieje możliwość obniżenia wersji rails z RVM.
proszę o pomoc.

+0

Jak wspomniałem nie używasz RVM następnie klasy, jak można w dół? . Aby zainstalować konkretną wersję szyny, musisz zrobić coś takiego, jak szyny instalacji klejnotów -v '3.2.16' –

+0

Dzięki Sabyasachi, ale nowe w szynach i szyny działały poprawnie przed aktualizacją pakietów, gdy uruchomię polecenie, aby zaktualizować pakiet aktualizuje moje wszystkie pakiety, a teraz, gdy uruchamiam serwer szyny, generuje mi błąd, o którym wspomniałem. Poinformuj mnie, w jaki sposób mogę zmienić wersję moich pakietów na poprzednie. –

+0

Wystarczy usunąć Gemfile.lock i uruchomić instalację pakietu i daj mi znać, czy działa, czy nie. –

Odpowiedz

7

Zgodnie z tym link:

TokenAuthenticatable została usunięta z przyrządów pomocniczych. Jeśli więc używasz go w swojej aplikacji, musisz go usunąć.

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

:token_authenticatable należy usunąć.

Skorzystaj także z tego link.

Jeśli działa lokalnie, prawdopodobnie oznacza to, że stary klejnot jest wczytywany - upewnij się, że twoje klejnoty nie zawierają starej wersji narzędzia, a w swoim Gemfile podaj tylko numer gem 'devise' bez konkretnej wersji.

Następnie do obniżenia wersji rubinowy, trzeba zainstalować RVM w komputerze,

proszę skierować poniższych łączy, aby zainstalować RVM i różnych wersji Ruby go używać. Następnie możesz użyć odpowiednich wersji ruby ​​dla różnych projektów. Nie trzeba obniżać wersji zainstalowanego systemu ruby. Możesz także użyć wersji ruby ​​systemowej, jeśli potrzebujesz. (rvm use system)

http://rvm.io/rvm/install

https://rvm.io/rubies/installing

http://rvm.io/rvm/basics

Nadzieja to pomaga :)

+0

@Shiv Aggarwal: Odpowiedź zaktualizowana, czy to działa dla Ciebie? –

+0

Rajesh jego dobra sugestia Wiedziałem, ale chcę, aby projekt stał się poprawny, jak to jest. Używam wiele innych klejnotów Z RVM myślę, że muszę zmienić wszystko, gdzie ... Mój projekt jest na końcowym etapie, więc zalecam, aby stał się prawidłowy, ponieważ jest .. –

+1

@ShivAggarwal: Hej, to nie jest wielka sprawa, aby zainstalować niższe wersje ruby ​​przy użyciu RVM. Przecież chcesz donwgrade, prawda? Po prostu zainstaluj RVM i wejdź w wersję ruby ​​(do której chcesz powrócić) i z folderu projektu, po prostu uruchom "rvm use 1.8.7" i uruchom instalację pakietu. Sprawdź ten link http://octopress.org/docs/setup/rvm/. Zajmie to tylko 5 minut. W przypadku problemów skorzystaj z wersji ruby ​​systemu, uruchamiając "system rvm use". Jeśli pomaga ci to właściwie, zaakceptuj odpowiedź. –