如何将不存在的列添加到SQL查询中

时间:2012-06-18 08:20:46

标签: ruby-on-rails ruby cart

我有点问题。我正在寻找一种方法来为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

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

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


[编辑]

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

这有点棘手,但确实有效。

1 个答案:

答案 0 :(得分:0)

也许定义购物车,因为以下将解决问题。

class Product
  attr_accessor quantity
end

class Cart
  ...
end