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 
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