这个动作好吗?可以用任何方式改进吗?我应该将订单的设置提取到私有方法并只是调用它吗?或者它是否正常并符合'Rails方式'?
def create
@order = Order.new(params[:order])
@product = Product.find(session[:product])
@order.amount = session[:total_amount]
@order.ip_address = request.remote_ip
@order.product_id = @product.id
@order.product_price = @product.price
@order.voucher = @voucher_value
@order.friend_id = session[:friend_id]
if @order.save
if @order.purchase
render :action => "success"
reset_friend_session_codes
else
render :action => "failure"
end
else
render :action => 'new'
end
end
TIA。
答案 0 :(得分:0)
我会尽可能多地考虑订单模型中的私有方法,并使用其中一个模型挂钩调用它,例如before_validation
。这对于一个动作来说是太多的逻辑,并且践踏了整个MVC。