0

我正在开发一个允许用户将产品(或订阅)添加到他们的购物车的小应用程序。创建帐户后,新用户将被发送到“捆绑”页面,在该页面询问他们是否愿意以捆绑价格为不同的产品添加不同的订阅。

这是我卡住的地方:在提交用户的信用卡信息时,我在尝试设置捆绑定价以提交给 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

但我只是不确定这是否是最佳做法。想法?

4

1 回答 1

1

所以唯一没有打折的订阅是第一个?为什么不这样写:

current_order.products.includes(:client).each do |product|
  if product == current_order.products.first
    # continue with authnet for single subscription
  else
    # run discount logic
  end
end
于 2012-08-23T20:45:41.540 回答