0
我正在研究一個允許用戶將產品(或訂閱)添加到購物車的小應用程序。在創建他們的賬戶時,新用戶被髮送到「捆綁」頁面,詢問他們是否想爲捆綁價格完全不同的訂購產品添加到不同的產品。Rails 3:循環和拔出項目的最佳實踐
這裏是我卡住的地方:在提交用戶的信用卡信息時,當嘗試設置提交給Authorize.net的捆綁定價時,我會略微「迷失在翻譯中」(我理解如何驗證,而不是此處的問題)。
這是我到目前爲止有:
current_order.products.includes(:client).each do |product|
transaction = current_order.submit_order_to_authnet(product)
if transaction.result_code == 'Ok'
new_group = Group.create!(:name => "#{current_user.full_name} #{product.title}", :type => 'school', :start_date => Time.now, :status => 'active', :site_id => 1)
primary = session[:primary_product_id].eql?(product.id) ? true : false
# Add subscription to Group
new_group.add_subscription(product, current_order, transaction.subscription_id, 'active', primary)
# Add Subscription to CurrentOrder
current_order.subscriptions << new_group.subscriptions.last
# Add user to NewGroup
current_user.groups << new_group
# Create New Group Admin
new_group.group_admins.create(:user_id => current_user.id)
# Send success email
OrderMailer.checkout_confirmation(current_user).deliver
else
errors << transaction.result_code
end
end
我試圖找出最好的解決辦法,當談到通過每一個產品在用戶current_order
循環,因爲在用戶購物車的第二預訂是訂閱也可以獲得折扣。我知道我可以寫這樣的事情:
current_order.products.includes(:client).each do |product|
if current_order.products.many? and product == current_order.products.last
# run discount logic
else
# continue with authnet for single subscription
end
end
但我只是不確定這是否是一種最佳做法。思考?