В моем приложении есть сделки, в которых заказы выполняются после достижения минимальной суммы заказа. В настоящее время у меня есть установочные заказы, которые размещаются сразу после отправки заказа, и все работает.
Теперь мне нужно изменить процесс, чтобы заказы обрабатывались после достижения минимального количества заказов для сделки.
Должен ли я использовать для этого 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. Любая помощь приветствуется.