Ruby on Rails 3.2.9 を使用していますが、state_machine gem を使用しようとしています。私は次の声明を持っています:
# Model class attributes are:
#
# [String] status
# [Boolean] checkin_1
# [Boolean] checkin_2
#
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
confirm
イベントがトリガーされた場合、checkin_1
および/またはcheckin_2
値がfalse
. つまりconfirm
、次の各オブジェクトを試しているとします。
<#Article id: 1, :status: 'unconfirmed', checkin_1: false, checkin_2: false>
<#Article id: 1, :status: 'unconfirmed', checkin_1: false, checkin_2: true>
<#Article id: 1, :status: 'unconfirmed', checkin_1: true, checkin_2: false>
次に、オブジェクトを保存して、次のようなエラー メッセージをそれぞれ追加することを避けたいと思います。
"can not be confirmed if it is not checked for 1 and 2"
"can not be confirmed if it is not checked for 1"
"can not be confirmed if it is not checked for 2"
どうやってそれを作ればいいですか?