【发布时间】:2011-09-04 12:42:14
【问题描述】:
我的应用有交易,一旦达到最低订单金额就会下订单。目前我已经设置了订单,在提交订单后立即下订单,这一切正常。
现在我需要更改流程,以便在达到交易的最小订单数后处理订单。
我应该为此使用delayed_job 还是使用cron 进程?
这是我想遵循的过程。
延迟订单直到达到最低订单数
- 查找仍然有效的交易
- 然后找到满足最小订单数量的交易
- 对于每个交易订单,循环并处理每个订单的捕获。
- 发送订单确认。
我的订单型号购买方式
def purchase
response = OrderTransaction.gateway.purchase(order_amount, credit_card, options)
transactions.create!(:action => "purchase", :amount => order_amount, :response => response)
response.success?
end
我的订单控制器中的创建方法。
def create
@member = current_member
@order_deal = Deal.find(params[:deal_id])
@order = @order_deal.orders.build(params[:order])
@order.member_id = current_member.id
@order.ip_address = request.remote_ip
@deal = @order_deal
if @order.save
if @order.purchase
MessageMailer.order_receipt(@order, @member).deliver
render :action => "success"
flash[:notice] = "Successfully created order."
else
render :action => "new"
end
else
render :action => 'new'
end
end
我在 Heroku 上运行这个应用程序。任何帮助表示赞赏。
【问题讨论】:
-
最低订单金额是指订单上的美元价值吗?如果是这样,我只会使用满足这些条件的验证。比如
-
只是为了澄清我需要最少的交易数量而不是订单。所以一个交易有很多订单,但要使交易可用,必须购买最低数量。
标签: ruby-on-rails ruby-on-rails-3 cron heroku delayed-job