Je n'ai pas encore vu ce screencast mais il me semble qu'il traite pile-poil de ton problème : http://railscasts.com/episodes/393-guest-user-record
gUI Le 14 février 2013 13:36, Francis <[email protected]> a écrit : > Tu peux essayer de garder les attributes du post dans session dans un > before_filter *avant* :authenticate_user!. Après le login tu redirect_to > new_post_url, et tu remplis le formulaire avec les données que tu as > gardées dans la session. De cette façon l'user n'aura que cliquer sur > "Envoyer" encore une fois. > > class ApplicationController > def after_sign_in_path_for(resource) > session.delete(:return_to) || root_url > end > end > > class PostsController < ApplicationController > before_filter :store_post_attributes_and_return_to, only: [:create] > before_filter :authenticate_user!, only: [:create, :edit, :update, > :destroy] > > def new > @post.attributes = session[:post_attributes] > end > > ... > > private > > def store_post_attributes_and_return_to > session[:post_attributes] = params[:post] > session[:return_to] = new_post_url > end > end > > j'ai pas testé cet code, mais je crois que ça devrais fonctioner. > > désolé pour mon mauvais français :D > > Francis > > > 2013/2/14 oto iashvili <[email protected]> > >> salut >> >> J'utilise Devise et Cancan >> >> mon modèle >> >> class PostsController < ApplicationController >> before_filter :authenticate_user!, only: [:create, :edit, :update, >> :destroy] >> ... >> end >> >> un utilisateur non identifié peut accéder au formulaire "new post". >> Maintenant, >> lorsque l'utilisateur non identifié valide un formulaire "new post" ou >> "edit post", il est redirigé vers le formulaire d'identification. Mais >> quand il se connecte, son post n'est pas enregistré dans la base de >> données. Y a t-il quelquechose à faire, comme un callback ou autre, si >> je veux que le post soit enregistré ? >> >> merci >> >> -- >> -- >> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" >> de Google Groups. >> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse >> [email protected] >> Pour résilier votre abonnement envoyez un e-mail à l'adresse >> [email protected] >> --- >> Vous recevez ce message, car vous êtes abonné au groupe Google >> Groupes Railsfrance. >> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le >> concernant, envoyez un e-mail à l'adresse >> [email protected]. >> Pour plus d'options, visitez le site >> https://groups.google.com/groups/opt_out . >> >> >> > > -- > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] > --- > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes Railsfrance. > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse > [email protected]. > Pour plus d'options, visitez le site > https://groups.google.com/groups/opt_out . > > > -- Pour la santé de votre ordinateur, préférez les logiciels libres. Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/ Browser le web : http://www.mozilla-europe.org/fr/products/firefox/ Suite bureautique : http://www.libreoffice.org/download/ -- -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] --- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
