我正在製作一個處理網站購買的購買模式,它將與支付網關交互。我的問題是關於如何設計接口,是否應該使用單獨的類方法來完成工作,或者使用回調修補AR生命週期。關於購買模型設計的建議(與網關交互)
起初,我正在做類似Purchase.make_purchase(product,...)這樣的類方法。但這看起來不太好。
我要實現的是使用模型生命週期和回調來完成購買和網關事務的解決方案。事情是這樣的:
@purchase = Purchase.new
@purchase.product = product
@purchase.user = current_user
if @purchase.save
else
end
我會再有一個before_save回調會談到網關:
before_save :transfer_funds
,可以阻止保存如果不成功,設置@ purchase.errors [:gateway_error]
我不確定這是解決此問題的最佳方法。有什麼建議?
我是使用活躍的商人,但這不是問題;) – pixelearth
瞭解,我更新了我的答案,給我的生活週期方法的個人經驗,希望它可以給你一些想法。 –
我使用生命週期方法完成了85%的模型。我和你之前創建的結果一樣,而不是在保存之前。你可以在這裏看到它(未完成)http://pastie.org/2541360 – pixelearth