2011-10-25 11 views
3

私は、state_machine last_actionを持つ参加者モデルを持っています。私は、last_actionの初期値をrole属性に応じて設定したいと思います。ロールが「教師」の場合、初期値は「値1」であり、ロールが「生徒」の場合、初期値は「値2」です。state_machine初期状態を他の属性の条件付きに設定する

どうすればよいですか? (私はRails 3.0でstate_machine gemを使用しています)。 ありがとうございます。

答えて

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 

乾杯

関連する問題