以下是我booking
模型中定义的状态。
第一个州
aasm :booking_state,namespace: :booking_state, skip_validation_on_save: true, :whiny_transitions => false do
state :pending, initial: true
state :some_other_states
end
第二州
aasm :payment_state,namespace: :payment_state, skip_validation_on_save: true, :whiny_transitions => false do
state :pending, initial: true
state :some_other_states
end
现在,如果我booking.aasm(:booking_state).current_state
,则会返回正确的state
名称。
但如果我booking.aasm(:booking_state).pending?
,则返回error
以下而不是布尔值。
`NoMethodError: undefined method `pending?' for #<AASM::InstanceBase:0x005611e58e4cf0>`
这可能是什么问题?我知道如果每个模型我只使用one
state
这是有效的。但是每个模型使用multiple states
时无效。
答案 0 :(得分:2)
当指定名称空间时,aasm的主分支声明"#{namespace}_#{state}?"
之类的方法。
那就是说,booking.booking_state_pending?
会起作用。