Problem mit restful_authentication

guten abend zusammen,

ich spiele gerade ein bischen mit dem genannten Plugin.
ActionMailer ist eingerichtet und funktioniert: er schickt
mir brav eine Mail mit dem richtigen Link nach dem Signup:
http://www.netfg.net/users/activate/e7475644f305ebb25c1a87225d6911f74e45952

Die Activate-Methode im Users-Controller habe ich etwas geändert, da ich
nach dem Sign-In noch nicht eingelogged bin. Ich prüfe also nur, ob ich
noch nicht “activated?” bin:

def activate

self.current_user = params[:activation_code].blank? ? :false :
  User.find_by_activation_code(params[:activation_code])
# im Original: if logged_in? && !current_user.activated?
if ! current_user.activated?
  current_user.activate

  flash[:notice] = "Signup complete!"

end

redirect_back_or_default('/')

end

Nun, das ergibt beim Aufruf folgende Fehlermeldung:
undefined method `activated?’ for :false:Symbol

Führe ich die Aktivierung aber über die Console aus, funktioniert es!:
u = User.find_by_activation_code(‘hier der Code aus der URL’)
=> #<User:0xb718b2f0 @attributes usw…
u.activated?
=> false
u.activate
=> true

Die Methoden activate und activated? sind also offensichtlich im User
Model vorhanden :wink:

Jemand eine Idee?
Torsten

N’Abend,

haste auch in die application.rb bzw in deinen controller
AuthenticatedSystem included?

class ApplicationController < ActionController::Base
include AuthenticatedSystem
end

–tom

On Nov 27, 2007, at 8:52 PM, Torsten F. wrote:

ich
flash[:notice] = “Signup complete!”
Führe ich die Aktivierung aber über die Console aus, funktioniert es!:
Jemand eine Idee?
Torsten


rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug


Thomas W.

Formrausch GmbH
Geschäftsfuehrer: Stefan Ternes, Thomas W.

Pfarrer-Kraus-Strasse 127e // 56077 Koblenz
Amtsgericht Koblenz HRB 20159

Buero Bonn // Muensterplatz 7 // 53111 Bonn
Buero Wiesbaden // Emanuel-Geibel-Str. 7 // 65185 Wiesbaden

phone: +49 261 914 699 20
fax: +49 261 914 699 21

[email protected]

Hallo,

self.current_user = params[:activation_code].blank? ? :false :
  User.find_by_activation_code(params[:activation_code])
# im Original: if logged_in? && !current_user.activated?

Wenn in der letzten Zeile current_user false ist, dann muss wohl
params[:activation_code] leer sein. Ich hätte auch erwartet, dass der
Activation Code in params[:id] steckt, wenn nicht eine eigene Route
angelegt wurde, die dem Parameter einen anderen Namen gibt.

HTH,

Gregor

jetzt mit richtigem Absender

Thomas W.|formrausch GmbH schrieb:

N’Abend,

haste auch in die application.rb bzw in deinen controller
AuthenticatedSystem included?

class ApplicationController < ActionController::Base
include AuthenticatedSystem
end

ja, hab ich

Gregor Schmidt schrieb:

Hallo,

self.current_user = params[:activation_code].blank? ? :false :
  User.find_by_activation_code(params[:activation_code])
# im Original: if logged_in? && !current_user.activated?

Wenn in der letzten Zeile current_user false ist, dann muss wohl
params[:activation_code] leer sein. Ich hätte auch erwartet, dass der
Activation Code in params[:id] steckt, wenn nicht eine eigene Route
angelegt wurde, die dem Parameter einen anderen Namen gibt.

das mit dem Routing ist ein guter Tipp! Hmmm.
Jetzt versteh ich auch die Meldung: auf ein nicht initialisiertes
Objekt eine Methode anwenden muss schief gehen… daher auch
die 2. Bedingung im Original…

Ich muss also die Route setzen…

Danke
Torsten

Torsten F. schrieb:

das mit dem Routing ist ein guter Tipp! Hmmm.
Jetzt versteh ich auch die Meldung: auf ein nicht initialisiertes
Objekt eine Methode anwenden muss schief gehen… daher auch
die 2. Bedingung im Original…

Ich muss also die Route setzen…

und folgende Route tut’s:

map.connect “/users/activate/:activation_code”,
:controller => “users”,
:action => “activate”

Vielen Dank für den Tipp
Torsten