【发布时间】:2012-02-29 21:57:14
【问题描述】:
有几个地方我可以做我需要做的事,但我不确定哪里是符合良好做法的最佳地方。
我有一个 Orders 控制器,在创建成功的订单后,我想创建订阅(但前提是订单成功)和推荐(但前提是订单与订单相关联)。
现在显而易见的选择是在 Order 模型上使用 after_create……但是……我怎样才能将会话数据放入其中? (推荐 id、朋友 id 和凭证 id 仅在会话中,因为不需要将它们存储在 Order db 中)。
那么我应该只在 create 操作中创建 Subscription 和 Referral 对象(我现在如何拥有它)还是有更好的方法?
这是我的创建操作: (@order.purchase 仅在支付成功时返回 true)
def create
if @order.save
if @order.purchase
Subscription.create(:order_id => @order.id, :product_id => @order.product_id)
if @order.voucher
Referral.create(:user_id => session[:friend_id], :order_id => @order.id,
:voucher_amount => @voucher_value)
end
render :action => "success"
else
render :action => "failure"
end
else
render :action => 'new'
end
end
任何帮助将不胜感激 - 我真的很想正确地做到这一点,所以我希望没有人介意我问什么可能是一个简单的问题。
【问题讨论】:
标签: ruby-on-rails-3