我有点问题。我正在寻找一种方法来为sql查询“添加”一列。
实际上,我使用此订单从表格中对某些产品进行排序:
@prod = Table.find(:all,{:select=>["id, prod-id, cost"],:conditions=>["something = ? and somethingelse = ?","that thing","that other thing"],:order=>"id DESC"})
然后我将此查询的结果放入表格(html)中,并使用表格将产品添加到购物车中。
问题来了。在我的购物车中,产品就是这样:
cart: #<Cart:0x00000005ce0a68 @items=[[#<Table id: 6024, prod-id: 907509, cost: 33>]]>
我需要在购物车中的数据中添加“列”。为了得到我的购物车:
cart: #<Cart:0x00000005ce0a68 @items=[[#<Table id: 6024, prod-id: 907509, cost: 33, quantity: 1>]]>
这是我的购物车:
class Cart attr_reader :items def initialize @items = [] @total_price = 0 end def add_product(product) @items << product product end def total_price @items.sum{ |item| item.prod_pxuttc} end def total_items @items.length end end
我不需要在表格中添加任何列。因为我必须将另一个源数据库中的数据导入到我的表中,而且我无法更改源数据库。 (是的,这是一个愚蠢的过程,但这就是我的客户想要的)
我完全不知道如何为我需要做的过程命名。
[编辑]
我找到了解决问题的方法。 通过创建具有相同列和列数量的第二个表,使用默认的空行。 然后我从第一个表中选择我的产品,第二个表中的默认行,我将产品中的值放入默认行的变量中。然后我将我的新变量放入购物车。
这有点棘手,但确实有效。
答案 0 :(得分:0)
也许定义购物车,因为以下将解决问题。
class Product
attr_accessor quantity
end
class Cart
...
end