我有两个类别类别和 order_item ,其中order_item 属于一个类别。
我想在每次检测到新类别时将唯一的“类别”项添加到作为“类别”数组并由数组类别变量 @@ categoriesList 表示的类别变量中在实例变量之间。
这是我尝试过的。
class OrderItemsController < ApplicationController
@@categoriesList = []
def create
@order_item = OrderItem.new(order_item_params)
if @order_item.save
@total = @order_item.order.total
@orderItemCategory = @order_item.category
if @orderItemCategory.set?
if !(@@categoriesList.include? @orderItemCategory)
@total += @orderItemCategory.price
@@categoriesList.push(@orderItemCategory)
end
........
........
end
代码说明:
如果已考虑到属于同一类别价格的上一个order_item的价格,则我不希望考虑下一个 order_item 实例的价格。
例如:鸡蛋和牛奶都属于Combo-1。所以我只想考虑一次Combo-1的价格,而不是每个order_item实例(即鸡蛋和牛奶)的价格,这会使总金额增加一倍。
我尝试过的事情:
在考虑了价格之后,我按了order_item的类别名称。并且在创建下一个order_item时,我通过在当前 @@ categoriesList 类变量中检查该order_item类别的价格,来检查该价格是否已经记录。
问题: 在每个实例中,当我检查类变量 @@ categoriesList 时,它都会返回一个空数组列表,并且不会显示以前已推送到该数组的记录。
我想要类似Java中的静态变量的类,其中该类的每个实例共享相同的变量,而无需实际刷新每个实例的变量中的数据。