电子商务-在Rails3



我有Transaction对象,它们组合在Cart对象中。一些CCD_ 3对象belong_to Products,另一些对象belong_to Services。我想在将类似的Transactions添加到购物车时将其组合起来(即,用新的价格和数量信息更新现有记录)。

以下是我目前拥有的(未经测试):

def update_cart
  if current_cart.transactions.find(:conditions => [service_id = self.service_id])
    @utransaction = current_cart.transaction.find(:conditions => [service_id = self.service_id])
    @utransaction.price = @utransaction.price + self.price
    @utransaction.save
  elsif current_cart.transactions.find(:conditions => [product_id = self.product_id])
    @utransaction = current_cart.transactions.find(:conditions => [product_id = self.product_id])
    @utransaction.price = @utransaction.price + self.price
    @utransaction.quantity = @utransaction.quantity + self.quantity
    @utransaction.save
  else
    nil
  end
end

然而,我觉得这非常庞大,可能有更好的方法。那么,在我进一步研究之前,有没有内置或更好的方法可以用这种方式更新现有对象?

谢谢!

假设您的交易可以属于产品或服务,那么听起来多态关联是您的最佳选择,并可能使您现有的问题更加简单。

查看关于多态关联的Railscast。

我想你会喜欢它,学到很多东西。

相关内容

  • 没有找到相关文章

最新更新