Im Folgenden sind die in meinem Modell definierten Zustände aufgeführt: booking
.Überprüfen, ob ein bestimmter Status nicht funktioniert, wenn mehrere Zustände pro Modell verwendet werden (AASM)
erster Zustand
aasm :booking_state,namespace: :booking_state, skip_validation_on_save: true, :whiny_transitions => false do
state :pending, initial: true
state :some_other_states
end
2. Staat
aasm :payment_state,namespace: :payment_state, skip_validation_on_save: true, :whiny_transitions => false do
state :pending, initial: true
state :some_other_states
end
Nun, wenn ich booking.aasm(:booking_state).current_state
tun gibt es die richtigen state
Namen.
Aber wenn ich booking.aasm(:booking_state).pending?
tun, wird unter error
statt booleschen Wert zurückgegeben.
`NoMethodError: undefined method `pending?' for #<AASM::InstanceBase:0x005611e58e4cf0>`
Was könnte das Problem hier sein? Ich weiß, wenn ich nur one
state
pro Modell dies funktioniert. Aber funktioniert nicht, wenn multiple states
pro Modell verwendet wird.
Aufruf, der einen 'state' zurückgibt, verwendet' booking_state' Variable, während letzterer ein Symbol ': booking_state' verwendet. Ist es ein Tippfehler? – mudasobwa
@mudasobwa ja, es ist ein Tippfehler. Das tut mir leid. – Abhilash
Master-Zweig von 'aasm' deklariert Methoden wie [' "# {namespace} _ # {state}?" '] (Https://github.com/aasm/aasm/blob/master/lib/aasm/base.rb # L101-L104), wenn der Namespace angegeben ist. Das heißt, "booking.booking_state_pending?" Sollte funktionieren. – mudasobwa