少し問題があります。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 番目のテーブルからデフォルトの行を選択し、製品の値をデフォルトの行の変数に入れます。次に、新しい変数をカートに入れます。
少しトリッキーですが、うまくいきます。