Posts Tagged ‘restful_authentication’

Probleme mit restful_authentication

Donnerstag, März 13th, 2008

Das Plugin restful_authentication ist der Nachfolger des bekannten acts_as_authenticated Login-Generators. Im Rails-Wiki wird dieses Plugin als “the only sane solution” beworben, falls man einen Login-Generator sucht.

Was genau macht das Plugin? Es erzeugt Login und Registrierungsformulare, ein User-Model, die Möglichkeit die Email-Adressen aus dem Registrierungsformular per Email zu verifizieren (durch einen per Email verschickten Aktivierungs-Link) und vieles mehr. Ich kann es nur wärmstens Empfehlen, insbesondere als Alternative zur eingeschränkteren Login-Funktionalität wie sie im “Agile Webdevelopment with Rails”-Buch vorgestellt wird!

Naja, bei der erstmaligen Benutzung von restful_authentication hatte ich jedoch ein Problem, dessen Lösung ein wenig mehr Suchaufwand erfordert hat, deswegen möchte ich sie hier vorstellen.

Restful_authentication benötigt zwei Controller, per Default “users” (zum Erzeugen neuer Benutzerkonten und zur Emailverifikation) und “sessions” (zum Erzeugen einer neuen Login-Session). Die Namen für die Controller kann man allerdings selbst festlegen. Ich habe statt sessions lieber session gewählt, was mir sinnvoller erschien (session/create vs. sessions/create, es wird ja schließlich nur eine Login-Session erzeugt). Letztendlich spielt der Name aber natürlich keine Rolle, da man ja named Routes benutzen kann.

Beim Login-Versuch bekam ich immer folgende Fehlermeldung:

uninitialized constant SessionsController

Die Lösung fand ich unter http://beast.caboo.se/forums/2/topics/1077:
In routes.rb muss die Zeile

map.resource :session

durch

map.resource :session, :controller => "session"

ersetzt werden, da sonst der Controllername automatisch (falsch) per Pluralization erzeugt wird.