Authlogic funktioniert nicht mit meiner Rails 3.2 App

7

Ich betreibe Rails 3.2 und die neueste Version von Authlogic. Wenn ich meine App lokal auf meinem Mac ausführe, funktioniert das problemlos. Wenn ich versuche, es auf meinem Produktionsserver (Ubuntu mit Passenger / Apache) zu starten, bekomme ich folgendes:

%Vor%

Ich bin mir nicht sicher, wie ich das Problem beheben kann. Ich habe heute diese verwandte Frage früher veröffentlicht, bevor ich festgestellt habe, dass die Problem war breiter als ich dachte.

    
Jason Swett 01.03.2012, 15:31
quelle

4 Antworten

9

Ich habe das Problem herausgefunden. Schau dir dieses Snippet von Authlogics lib/authlogic/acts_as_authentic/base.rb :

an %Vor%

Wenn column_names einen Fehler auslöst, gibt db_setup? den Wert false zurück. Sehen Sie sich diese andere Funktion an, auch aus base.rb :

%Vor%

Wenn db_setup? false zurückgibt, wird Authlogic eine Ausnahme auslösen, , aber nicht dieselbe Ausnahme, die von column_names ausgelöst wird.

Mein Problem war, dass column_names diese Ausnahme ausgelöst hat:

%Vor%

Und der Grund für diese Ausnahme ist, dass meine Benutzertabelle user heißt, nicht users , aber Rails hat meine pluralize_table_names -Einstellung nicht richtig aufgenommen. Sobald ich mein pluralize_table_names -Problem behoben habe (anscheinend ist die Funktionsweise dieser Einstellung in Rails 3.1 geändert worden), ist mein Authlogic-Problem verschwunden.

Wenn Sie dieses Problem haben, sollten Sie Folgendes versuchen:

  • Klonen Sie den Authlogic-Repo irgendwo auf Ihrem Dev-Rechner
  • Ändern Sie Ihre Gemdatei, um die lokale Version von Authlogic ( 'authlogic', :path => '/path/to/authlogic' )
  • zu verwenden
  • Fügen Sie einen column_names -Aufruf zu db_setup? außerhalb der begin / rescue / end -Klausel
  • hinzu
  • Sehen Sie, ob Sie einen anderen, möglicherweise genaueren und informativeren Fehler erhalten, wie ich
Jason Swett 04.03.2012, 19:42
quelle
5

Ich habe das an meiner Gabel befestigt. Bis Ben Zeit hat, den Fix zusammenzuführen, können Sie das umgehen, indem Sie den festen Zweig in Ihrer Gemdatei verwenden;

%Vor%     
james2m 12.07.2012 00:14
quelle
4

Für alle anderen, die auf diese Seite gekommen sind, um nach einer Antwort zu suchen.

Ein Grund könnte sein, dass Sie Ihre Testdatenbank nicht erstellt haben.

Einfach ausführen:

  

$ RAILS_ENV = Teste rake db: create db: migrate

    
Mooktakim Ahmed 24.08.2012 10:35
quelle
1

Folgen Sie dem offenen Problem bei Ссылка und +1, damit der Fix bald zusammengeführt wird:)

    
wintondeshong 10.09.2012 05:19
quelle

Tags und Links