Rails 3.1Rails:作成後に複数のデータベースエントリを平均化する方法
私の質問に答えるためにアプリケーションを簡略化します。
私は2つのテーブルがあります:アイテムとレビュー
アイテムが列「AVERAGE_RATING」とレビューは、各項目の列「ITEM_ID」と「評価」
を持って、私が保存したい持っています対応するレビューの平均評価私はそれを把握することはできませんが、私は私が何をしたいかのように感じるの線に沿っクチコミコントローラで作成および更新方法に何かを追加です:
@review = Review.find(params[:id])
@item = Item.find(@review.Item_ID)
reviews_to_sum = Reviews.find_by_item_id(@item.id)
@item.Average_Rating = reviews_to_sum.Rating.sum/reviews_to_sum.count
私は上記のことを、しかし、認識おそらく正しいに近づいていない...私は初心者であり、私は立ち往生しています。
そして私は、それが必要なときに計算するのではなく、さまざまな理由で、Average_Ratingをデータベースに保存したいと思います。
「Item_ID」のような列名はどこにありますか? ActiveRecordはデフォルトで 'item_id'を好んでおり、メソッドは同じです。 Rubyでの大文字の使用は、一般的に定数を指します。 – tadman
ええ、元々私はデータベース構造を構築したときに考えていなかったので、大文字にしました。私はすべてを小文字に移行することができますが、大文字は本当に問題ですか、それとも非標準ですか? –
これは、現在と将来のために不規則なものとして目立つようになります。したがって、早く標準化することができます。あなたはいつも穀物に逆行する正当な理由があるはずです。また、すべての関係で外部キー・パラメーターをオーバーライドする必要がないことも意味します。 – tadman