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