7
votes

Authlogic ne fonctionne pas avec mes rails 3.2 app

Je cours dans les rails 3.2 et la dernière version d'Authlogic. Quand j'exécute mon application localement sur mon Mac, cela fonctionne bien. Lorsque j'essaie de l'exécuter sur mon serveur de production (Ubuntu avec passager / Apache), je reçois ceci:

You must establish a database connection before using acts_as_authentic


3 commentaires

J'avais l'habitude d'être un gros ventilateur authlogic et j'avais beaucoup d'applications dans l'ère 2.x l'utilisant (y compris des adaptateurs pour LDPA, RPX, etc.). J'ai depuis mis à niveau la plupart d'entre eux à 3.0.x et 3.2, mais dans le processus décidé que dans l'ensemble, il est meilleur et plus facile à migrer pour concevoir. C'est facile et le code est plus propre (généralement dû à avoir été conçu dans l'époque 3.0). Cela ne répond pas à votre question. Je viens de le mentionner de sorte que vous gardiez cela à l'esprit si Authlogic continue de rater; La commutation au congé n'est pas une si grosse affaire, et cela ne vous mènera pas longtemps pour obtenir les bases en place.


J'ai finalement fini par passer pour concevoir l'autre jour. C'était un commutateur étonnamment facile et sans douleur.


Cela semble être corrigé. Pour l'instant, nous devons utiliser gem 'authlogic',: git => 'git: //github.com/binarylogic/authlogic.git' dans le gemfile à tirer de la branche principale.


4 Réponses :


9
votes

J'ai compris le problème. Regardez cet extrait de lib / authlogic / acts_as_authentic / bey.rb : xxx

si colonne_names jette une erreur, db_setup? retournera false. Regardez cette autre fonction, aussi à partir de base.rb : xxx

si db_setup? retourne faux, Authlogic va lancer Une exception, mais pas la même exception projetée par colonne_names .

Mon problème était que colonne_names jetait cette exception: xxx

et la raison de cette exception est que ma table d'utilisateur est que ma table d'utilisateur est appelé utilisateur , pas utilisateurs , mais les rails ne célébraient pas mon pluralize_table_names réglage correctement. Une fois que j'ai corrigé mon pluralize_table_names problème (apparemment, la manière dont ce paramètre fonctionne a été modifiée dans Rails 3.1), mon problème d'authlogic est parti.

Donc, si vous avez ce problème, Vous voudrez peut-être essayer ceci:

  • clonez le repo authlogic à quelque part sur votre machine de développement
  • Changez votre gemfile pour utiliser la version locale d'Authlogic ( 'authlogic',: chemin => '/ chemin / à / authlogic' )
  • Ajouter un Column_Names Appel à dB_Setup? En dehors du Commencez / Sauvetage / / CLAUSE
  • Voir si vous obtenez une erreur différente, potentiellement plus précise et informative, comme je l'ai fait

1 commentaires

Ce qui serait vraiment bien, bien sûr, si Authlogic était au courant de la possibilité de ce problème. J'ai posté une nouvelle question demandant comment détecter ce problème particulier afin que je puisse appliquer un patch à authlogic ... en supposant que c'est une bonne idée. Stackoverflow.com/questions/9557860/...



5
votes

J'ai réparé cela sur ma fourchette. Jusqu'à ce que Ben ait le temps de fusionner le correctif, vous pouvez contourner cela à l'aide de la branche fixe de votre gemfile; xxx


0 commentaires

4
votes

Pour quelqu'un d'autre qui aurait pu venir sur cette page à la recherche d'une réponse.

Une des raisons pourrait être que votre n'a pas créé votre base de données de test.

Il suffit de courir:

$ rails_env = Test Rake DB: Créez dB: migrer


0 commentaires

1
votes

Suivez le numéro Open sur https://github.com/binaryLogic/authlogic/issues/318 et +1 afin que la solution se fusionne bientôt :)


0 commentaires