0

我有一个小问题。我正在寻找一种将列“添加”到 sql 查询的方法。

实际上我用这个顺序从一个表中排序了一些产品:

@prod = Table.find(:all,{:select=>["id, prod-id, cost"],:conditions=>["something = ? and somethingelse = ?","that thing","that other东西"],:order=>"id DESC"})

然后我将这个查询的结果放入一个表格 (html) 中,并使用一个表格将产品添加到购物车中。

现在问题来了。在我的购物车中,产品是这样的:

购物车:#<购物车:0x00000005ce0a68 @items=[[#<Table id:6024,prod-id:907509,成本:33>]]>

我需要在我的购物车中的数据中添加一个“列”。像这样得到我的购物车:

cart: #<Cart:0x00000005ce0a68 @items=[[#<Table id: 6024, prod-id: 907509, cost: 33, 数量: 1>]]>

这是我的购物车:

类购物车
      attr_reader :项目

      定义初始化
        @项目 = []
        @total_price = 0
      结尾

      def add_product(产品)
        @项目 << 产品
        产品
      结尾

      def total_price
        @items.sum{ |项目| item.prod_pxuttc}
      结尾

      def total_items
        @items.length
      结尾
    结尾

我不需要在我的表中添加任何列。因为我必须将另一个源数据库中的数据导入到我的表中,并且我无法更改源数据库。(是的,这是一个愚蠢的过程,但这就是我的客户想要的)

我完全不知道如何为我需要做的过程命名。


[编辑]

我找到了解决问题的方法。通过创建第二个表,具有相同的列和列数量,默认为空行。然后我从第一个表中选择我的产品,从第二个表中选择默认行,并将产品中的值放入默认行的变量中。然后我把我的新变量放入我的购物车。

这有点棘手,但它有效。

4

1 回答 1

0

也许将 Cart 定义为以下将解决问题。

class Product
  attr_accessor quantity
end

class Cart
  ...
end
于 2012-06-18T09:23:18.770 回答