2013-04-08 7 views
6

Rails 3アプリの2つのフィールドの積の合計を計算する必要があります(つまり、Excelのサムプロット関数に相当)。これを手助けする方法がありますか?そうでなければ、カスタムSQLを使用するレールコードは何ですか?Rails 3 Sum 2つのフィールドのプロダクト

たとえば、ホテルには多くの客室があります。ルームには、sqft(平方フィート)、数量(そのサイズ)、hotel_idの属性があります。特定のホテルの全客室の総面積を計算したいと思います。 SQLでは、= 8 Hotel.idのために、私は次のステートメントが動作すると信じて:

select sum(rooms.sqft * rooms.quantity) as SumSqft from rooms inner join hotels on rooms.hotel_id = hotels.id where hotels.id = 8; 

答えて

17

うん:

Room.where(hotel_id: 8).sum("sqft * quantity") 
+0

パーフェクト。ありがとう!私は現在のホテルショーのアクションを想像して、 "@ hotel.id"を "8"に置き換えることができます。 – Ryan

+0

はい:10チャンス! –

0
def calculate 
    @hotel=Hotel.find(params[:id] 
    @rooms=Room.all.where(:hotel_id=>@hotel.id) 
    sum=0 
    @rooms.each do |room| 
    sum=sum+room.sqft*room.quantity 
    end 
    return sum 
end 
関連する問題