Je ne sais pourquoi, mais le code suivant fonctionne sans problème:
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 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
Quelqu'un a une idée ? Comment aussi utiliser l'option :after ?
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
Merci d'avance.
Partager