IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

acts_asa_state_machine - problème avec l'option :enter


Sujet :

Ruby on Rails

  1. #1
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut acts_asa_state_machine - problème avec l'option :enter
    Je ne sais pourquoi, mais le code suivant fonctionne sans problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    class Timeline < ActiveRecord::Base
    belongs_to :report
     
      acts_as_state_machine :initial => :pending, :column => 'status'
     
      state :pending
      state :alert1_sent, :enter => :set_alert1
      state :alert2_sent, :enter => :set_alert2
     
      event :change_status do
        transitions :from => :pending, :to => :alert1_sent,
          :guard=> Proc.new {|timeline| timeline.alert1_date.to_date == Date.today}
        transitions :from => :alert1_sent, :to => :alert2_sent,
          :guard=> Proc.new {|timeline| timeline.alert2_date.to_date == Date.today}      
      end
     
    def set_alert1    
        update_attribute(:alert1_sent, true)
        AlertMailer.deliver_send_alert(self)
      end
     
      def set_alert2
        update_attribute(:alert2_sent, true)
        AlertMailer.deliver_send_alert(self)
      end
    end
    Mais c'est plus le cas si je déplace l'option :enter à l'intérieur de l'event:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    class Timeline < ActiveRecord::Base
    belongs_to :report
     
      acts_as_state_machine :initial => :pending, :column => 'status'
     
      state :pending
      state :alert1_sent
      state :alert2_sent
     
      event :change_status do
        transitions :from => :pending, :to => :alert1_sent,
          :guard=> Proc.new {|timeline| timeline.alert1_date.to_date == Date.today},
    :enter => :set_alert1
        transitions :from => :alert1_sent, :to => :alert2_sent,
          :guard=> Proc.new {|timeline| timeline.alert2_date.to_date == Date.today},
    , :enter => :set_alert2      
      end
     
    def set_alert1    
        update_attribute(:alert1_sent, true)
        AlertMailer.deliver_send_alert(self)
      end
     
      def set_alert2
        update_attribute(:alert2_sent, true)
        AlertMailer.deliver_send_alert(self)
      end
    end
    Quelqu'un a une idée ? Comment aussi utiliser l'option :after ?
    Merci d'avance.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Mais c'est plus le cas si je déplace l'option :enter à l'intérieur de l'event
    Peut etre parce qu'il est prévu que cette option soit au niveau des "state" et non au niveau des "event"...
    Pourquoi vouloir la déplacer ?

  3. #3
    Membre averti Avatar de Javix
    Inscrit en
    Juin 2007
    Messages
    531
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 531
    Points : 353
    Points
    353
    Par défaut
    Justement, j'ai revérifié, c'est comme tu l'avais dis. Je n'ai pas fait attention. Donc je l'ai laissé là où c'est prévu - au niveau de states et ça marche.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme avec l'option AllowUserToResizeColumns
    Par oofzos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/09/2009, 09h53
  2. Réponses: 3
    Dernier message: 15/04/2007, 02h36
  3. Problème avec l'option version de Delphi 2006
    Par richard038 dans le forum Delphi
    Réponses: 4
    Dernier message: 05/12/2006, 09h20
  4. Problème avec l'option -llibpng
    Par Premium dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 12/11/2006, 11h40
  5. [socket] Problème avec les options
    Par gangsoleil dans le forum Développement
    Réponses: 3
    Dernier message: 13/07/2005, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo