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 .


Répondre à