지불 게이트웨이와 상호 작용할 사이트 구매를 처리하는 구매 모델을 만들고 있습니다. 내 질문은 별도의 클래스 메서드를 사용하여 작업을 수행할지 콜백을 사용하여 AR 수명주기에 패치할지에 따라 인터페이스를 디자인하는 방법에 관한 것입니다.구매 모델 디자인에 대한 조언 (게이트웨이 상호 작용 포함)
처음에는 클래스 메소드로 Purchase.make_purchase (product, ...)와 같은 작업을 수행했습니다. 그러나 이것은 위대해 보이지 않았다.
구현할 항목은 모델 수명주기 및 콜백을 사용하여 구매 및 게이트웨이 트랜잭션을 만드는 솔루션입니다. 이런 식으로 뭔가 :
@purchase = Purchase.new
@purchase.product = product
@purchase.user = current_user
if @purchase.save
else
end
나는 다음 게이트웨이로 회담 before_save 콜백을 할 것이다 : [: gateway_error]
purchase.errors @ 설정, 실패 할 경우 저장 중지 할 수 있습니다before_save :transfer_funds
이것이 최선의 방법이라고 확신하지 않습니다. 어떤 충고?
나는 활성 상인을 사용하고 있지만 질문은 아닙니다.) – pixelearth
내 생각에 라이프 사이클 방법에 대한 개인적인 경험을 제공하기 위해 답을 업데이트했습니다. 아이디어를 줄 수 있기를 바랍니다. –
저는 라이프 사이클 방식을 사용하여 모델을 85 % 완성했습니다.전에 before_create와 같은 결론에 도달했습니다. 당신은 그것을 볼 수 있습니다 (완료되지 않았습니다) http://pastie.org/2541360 – pixelearth