Bonsoir Arthur, Es-tu d'avoir suivi la documentation de state_machine ?
Il ne suffit pas de changer le nom de la méthode pour avoir du code valide. ;-) De mémoire, ta state machine doit ressembler à ça : state_machine :initial => :pending do after_transition :on => :converted, :do => :set_new_filename event :convert do transition :pending => :converting end event :converted do transition :converting => :converted end event :failed do transition :converting => :error end end (la déclaration explicite des states reste optionnelle pour ton cas de figure) Pour ton second problème : @video = @event.videos.create(params[:video]) @video = @event.videos if @video.save Cette ligne est amplement suffisante (toujours dans ton cas de figure) : @video = @event.videos.create(params[:video]) Ajoute un ! à la fin de create pour lancer une exception décrivant la raison de l'erreur qui empêche de sauvegarder ton objet ou consulte le contenu de @video.errors Bon courage ! 2011/12/2 Arthur Itey <[email protected]>: > Me voila :) > > j'ai converti ça : > >> acts_as_state_machine :initial => :pending >> state :pending >> state :converting >> state :converted, :enter => :set_new_filename >> state :error >> >> event :convert do >> transitions :from => :pending, :to => :converting >> end >> >> event :converted do >> transitions :from => :converting, :to => :converted >> end >> >> event :failed do >> transitions :from => :converting, :to => :error >> end > > > en ça (j'ai suivi la doc): > >>> state_machine :initial => :pending do >>> >>> state :pending >>> >>> state :converting >>> >>> state :converted, :enter => :set_new_filename >>> >>> state :error >>> >>> >>> event :convert do >>> >>> transition :from => :pending, :to => :converting >>> >>> end >>> >>> >>> event :converted do >>> >>> transition :from => :converting, :to => :converted >>> >>> end >>> >>> >>> event :failed do >>> >>> transition :from => :converting, :to => :error >>> >>> end >>> >>> end > > > Et j'ai le droit a un invalid keys :( > > D'autre part j'ai une autre erreur ici > > def create > > @video = Video.new(params[:video]) > if @video.save > @video.convert > flash[:notice] = 'Video has been uploaded' > redirect_to :action => 'index' > else > render :action => 'new' > end > end > > Il n'accepte pas les save car mon code ressemble a celui la : > >>> def create >>> >>> @event = Event.find(params[:event_id]) >>> >>> # @video = @event.videos.create(params[:video]) >>> >>> @video = @event.videos >>> >>> if @video.save >>> >>> @video.convert >>> >>> flash[:notice] = 'Video has been uploaded' >>> >>> redirect_to :action => 'index' >>> >>> else >>> >>> render :action => 'new' >>> >>> end >>> >>> redirect_to event_path(@event) >>> >>> end > > > Je vous serais reconnaissant :) > > 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 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]
