Booking
의 경우 aasm
statemachine
을 사용하십시오. 여러 조건에서 레코드를 효율적으로 가져 오기
상태 머신
아래가 나는booking.payment_authorized
를 호출 할 수있는 상태에 따라 예약을 가져 그래서
state :payment_authorized
state :payment_captured
state :payment_failed
state :some_more_states
을 말한다. 그러나 찾고있는 것은 상태가 payment_authorized
이고 payment_captured
인 모든 레코드를 원한다는 것입니다.
이 작업은 booking.payment_authorized + booking.payment_captured
이지만이 작업은 2 회의 데이터베이스 호출입니다. 하나는 authorized_state
이고 다른 하나는 captured_state
입니다. 이 작업을 한 번에 더 효율적으로 수행하려면 어떻게해야합니까?
'booking.payment_authorised'는 예약 상태를 확인하지 않고 'payment_authorized'로 변경하지 않으시겠습니까? 'booking.payment_authorized? ' – kiddorails
예, 오타가 수정되었습니다. 변경 될 것입니다. 하지만 그 두 국가를 만족시키는 모든 레코드를 가져와야하는 시나리오가 있습니다 ... – Abhilash