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
on 2012-03-19 12:51
on 2012-03-20 02:47
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: https://github.com/plataformatec/devise nel paragrafo: Configuring controllers HTH, Enrico 2012/3/19 Marco Mastrodonato <m.mastrodonato@gmail.com> > end > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Ml mailing list > Ml@lists.ruby-it.org > http://lists.ruby-it.org/mailman/listinfo/ml -- Enrico Teotti Software development and web design currently working @ http://abc.com.au Sydney, NSW, Australia enrico.teotti@gmail.com mobile (AU) +00610416748450 http://teotti.com
on 2012-03-20 10:58
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
on 2012-04-10 18:57
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?
on 2012-04-11 14:06
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
-_-
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.