0

私はRubyonRails 3.2.9を使用しており、state_machinegemを使用しようとしています。私は次のステートメントを持っています:

class Article < ActiveRecord::Base
  state_machine :attribute => :status, :initial => :unconfirmed do
    state :confirmed, :value => 'confirmed'
    state :unconfirmed, :value => 'unconfirmed'

    event :confirm do
      transition :unconfirmed => :confirmed
    end

    event :unconfirm do
      transition :confirmed => :unconfirmed
    end
  end
end

に切り替えたときに最後に保持することを目的としconfirmed_atたモデルの属性もあります。Article:status:confirmed

confirmed_at属性を現在の時刻に初期化する方法は?イベントがトリガーされるたびに、を現在の時刻に設定するにはどうすればよいですか?confirmed_at:confirm

4

1 に答える 1

0

それが目的のようbefore_transitionです。

before_transition :confirmed => any - :confirmed, :do => :set_confirmed_at

次に、その名前でメソッドを追加します。

def set_confirmed_at
  self.confirmed_at = Time.now
end
于 2012-12-21T17:49:47.337 に答える