6

Rails 3 アプリで 2 つのフィールドの積の合計を計算する必要があります (つまり、Excel の sumproduct 関数に相当します)。これに役立つRailsのメソッドはありますか?そうでない場合、カスタムSQLを使用するRailsコードは何でしょうか?

たとえば、ホテルには多くの部屋があります。Room には、sqft (平方フィート)、quantity (そのサイズ)、および hotel_id の属性があります。特定のホテルのすべての部屋の合計平方フィートを計算したいと思います。SQL では、Hotel.id = 8 の場合、次のステートメントが機能すると思います。

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

2 に答える 2

18

はい:

Room.where(hotel_id: 8).sum("sqft * quantity")
于 2013-04-08T20:14:59.243 に答える
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
于 2013-04-08T20:18:43.457 に答える