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.
Ich habe das Problem herausgefunden. Schau dir dieses Snippet von Authlogics lib/authlogic/acts_as_authentic/base.rb
:
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
:
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:
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:
'authlogic', :path => '/path/to/authlogic'
) column_names
-Aufruf zu db_setup?
außerhalb der begin
/ rescue
/ end
-Klausel 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
Folgen Sie dem offenen Problem bei Ссылка und +1, damit der Fix bald zusammengeführt wird:)
Tags und Links ruby-on-rails-3.2 passenger