当每个模型使用多个状态时检查特定状态不起作用 (aasm)

checking for a specific state not working when using multiple states per model (aasm)

以下是我的 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 它 returns 正确的 state 名称。

但是如果我booking.aasm(:booking_state).pending?它returns低于error而不是布尔值。

`NoMethodError: undefined method `pending?' for #<AASM::InstanceBase:0x005611e58e4cf0>`  

这可能是什么问题?我知道如果我只对每个模型使用 one state 这可行。但在每个模型使用 multiple states 时不起作用。

aasm 的 Master 分支在指定命名空间时声明类似 "#{namespace}_#{state}?" 的方法。

也就是说,booking.booking_state_pending? 可以。