我正在开发一个包含结帐篮的 Rails 应用程序,需要一些基本帮助。
我正在努力整合某些产品定价所需的逻辑论据。如果购物车中添加了五个或更多产品,我想做的是降低产品的价格。
我目前有具有典型关联的产品、line_items、购物车和订单的模型和控制器。
我确信if and elseif
我可以在方法中定义一个简单的语句,但我很想知道其他人将如何将其作为最佳实践来实现?
在此先感谢您的帮助!艾丽
我正在开发一个包含结帐篮的 Rails 应用程序,需要一些基本帮助。
我正在努力整合某些产品定价所需的逻辑论据。如果购物车中添加了五个或更多产品,我想做的是降低产品的价格。
我目前有具有典型关联的产品、line_items、购物车和订单的模型和控制器。
我确信if and elseif
我可以在方法中定义一个简单的语句,但我很想知道其他人将如何将其作为最佳实践来实现?
在此先感谢您的帮助!艾丽
我不确定您何时使用 aCart
与Order
. 假设您主要工作在Cart
与LineItems
. 在某些时候,我猜,Cart
当用户输入他们的信用卡号码时,就会变成一个订单。
首先我会说Lineitem
应该有一个discounted
字段。所以LineItem
不一定存储折扣价;你让Order
orCart
类确定它的实际最终价格。
第二次使用和关联回调以在订单项添加到订单时自动应用折扣。
class Cart
has_many :line_items,
after_add: :calculate_volume_discount,
after_remove: :calculate_volume_discount
# When a line item is added or removed determine if current items
# are entitled to a discount
def calculate_volume_discount line_item
current_count = line_items.count
line_items.each do |li|
li.discounted = (current_count >= 5)
li.save
end
end
end