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=[[#<テーブル ID: 6024、製品 ID: 907509、コスト: 33>]]>

そして、カート内のデータに「列」を追加する必要があります。私のカートをそのようにするには:

カート: #<カート:0x00000005ce0a68 @items=[[#<テーブル ID: 6024、製品 ID: 907509、コスト: 33、数量: 1>]]>

ここに私のカートがあります:

クラスカート
      attr_reader :アイテム

      デフ初期化
        @items = []
        @total_price = 0
      終わり

      def add_product(製品)
        @items << 商品
        製品
      終わり

      デフォルトの合計価格
        @items.sum{ |アイテム| item.prod_pxuttc}
      終わり

      def total_items
        @items.length
      終わり
    終わり

テーブルに列を追加する必要はありません。別のソース データベースからテーブルにデータをインポートする必要があり、ソース データベースを変更できないためです。(はい、それはばかげたプロセスですが、それは私の顧客が望んでいることです)

必要なプロセスに名前を付ける方法がまったくわかりません。


[編集]

問題を解決する方法を見つけました。2 番目のテーブルを作成し、同じ列と列数を持ち、既定の空の行を使用します。次に、最初のテーブルから製品を選択し、2 番目のテーブルからデフォルトの行を選択し、製品の値をデフォルトの行の変数に入れます。次に、新しい変数をカートに入れます。

少しトリッキーですが、うまくいきます。

4

1 に答える 1

0

次のように Cart を定義すると、問題が解決する可能性があります。

class Product
  attr_accessor quantity
end

class Cart
  ...
end
于 2012-06-18T09:23:18.770 に答える