2

私はorderモデルbelongs_to :userproductモデル、結合モデルを持っていますorder_product:

class OrderProduct < ActiveRecord::Base
  belongs_to :order
  belongs_to :product
end

order_productモデルには列がありquantityます。

pユーザーが注文した製品の数を確認するにはどうすればよいuですか? Rails 3 のアクティブ レコード クエリ構文を使用し、可能な限りデータベース レベルで行われるソリューションを見つけたいと思います。助けていただければ幸いです。

4

2 に答える 2

3

それはトリックを行う必要があります:

u.order_products.where(:product_id => p.id).sum(:quantity)

これは単一の SQL クエリであり、1 つの製品を表示するのに適しています。複数の製品を表示している場合は、製品 ID でグループ化して、値のハッシュを取得し、そこから検索を行います。

于 2011-04-01T03:00:54.253 に答える
0

Rails 3 クエリ チェーンを使用する場合は、次のようになります。

p.order_product.includes("注文").where(:orders => {:user_id => 'user_id'}).sum(:quantity)

それが機能するかどうかを確認してみてください、多分私は何かを見逃しています

于 2011-04-01T04:00:00.480 に答える