Stavo provando ad alterare il metodo create di
Devise::SessionsController, la prova da console funziona ma quando lo
provo su web il bind non si sposta dall’originale, cosa può essere?
class Devise::SessionsController
original_create = instance_method :create
define_method :create do
redirect_to root_path, :notice => “aaa”
end
end
Personalmente non ho mai usato define_method per riscrivere una action
in un controller.
Ho dovuto aggiungere logica al logout di devise l’altro giorno ed ho
aggiunto un sessions_controller.rb e ridefinito la action aggiunto la
mia riga e poi chiamato super per far fare a devise quel che deve
fare:
class SessionsController < Devise::SessionsController
respond_to :html
def destroy
current_user.reset_game_sessions!
super
end
end
avevo seguito:
nel paragrafo: Configuring controllers
HTH,
Enrico
2012/3/19 Marco M. [email protected]
end
–
Posted via http://www.ruby-forum.com/.
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Enrico T.
Software development and web design
currently working @ http://abc.com.au
Sydney, NSW, Australia
[email protected]
mobile (AU) +00610416748450
Grazie Enrico, hai ragione era anche scritto ma non l’avevo notato.
Utilizzare l’ereditarietà è sempre meglio e non ci sono dubbi ma non
riuscivo a spostare il bind dall’originale per cui ero passato alle
maniere forti
Avevo personalizzato la creazione della sessione e funzionava, ora non
capisco cosa è successo ma non funziona più, neanche la cosa più banale
come questo esempio:
def create
params[:user][:email] = nil
params[:user][:password] = nil
super
end
non ci si dovrebbe mai loggare ed invece, pur eseguendo quel codice, con
credenziali corrette viene effettuato il login, come se devise
memorizzasse le informazioni in anticipo, eppure è sempre la versione
2.0.4 e non ho cambiato nulla.
Forse sono solo stanco e domani tornerà a funzionare?
Era una before filter nell’application controller:
class ApplicationController < ActionController::Base
before_filter :set_current_user
def set_current_user
User.current_user = current_user
end
end
-_-