设置state_machine初始状态以其他属性为条件

时间:2011-10-25 23:25:36

标签: ruby-on-rails state-machine

我有一个参与者模型,有state_machine last_action。我想根据角色属性设置last_action的初始值。如果role是“Tutor”,则初始值为“value 1”,而如果role为“Student”,则初始值为“value 2”。

我该怎么做? (我在Rails 3.0中使用state_machine gem)。 谢谢。

1 个答案:

答案 0 :(得分:0)

before_validation :set_initial_last_action, :on => :create

state_machine :last_action do
  ...
end 

private

def set_initial_last_action
  if role == 'Tutor'
    self.last_action = 'value 1'
  elsif role == 'Student'
    self.last_action = 'value 2'
 end
end

干杯

相关问题