2011-12-28 9 views
2

私は2つのテーブルを持っています:1つはプロジェクトと呼ばれ、もう1つはドキュメントと呼ばれます(プロジェクトは多くのドキュメントを持ち、ドキュメントはプロジェクトに属します)。Railsの特定の列にすべての行を追加しますか?

Projectsテーブルには、必要なドキュメントの数を指定できる「制限」整数列があります。

すべての制限を合計して1つの値を取得したいとします。たとえば、プロジェクトAの制限が5、プロジェクトBの制限が10、プロジェクトCの制限が8の場合、 "23"を表示することができます。

このための適切なRubyコマンドは何ですか?

答えて

6

ActiveRecord::Baseはそう

Project.sum(:limit) 

はトリックを行う必要があり、合計の方法として、SQL SUM機能を公開します。あなただけactiveが人に関連付けられているプロジェクトの限界を合計する本当だったか

person.projects.sum(:limit) 

の行の合計を計算するために

Project.where(:active => true).sum(:limit) 

を行うことができますので、これは、その上のスコープを認識しており、 (人物has_manyまたはhabtmプロジェクトと仮定して)

MAXおよびAVERAGEは同様の方法で公開されます。

+0

それはトリックでした。多くの感謝@フレデリックチョン!! – cdotfeli

関連する問題