对于预订,我想计算extra_guests的价格(例如,房价中未包含客人)。
reservation_guests
。 完成 :rank
排列来宾。 问题 目标是使用排名开始计算age_table排名最低的Extra_Guest的extra_guest_price,以防标准预订中未包含客人的情况。
问题
我只需要特定的age_tables范围即可根据:rank
进行排名。我目前的设置是错误的,因为我无法在数组上使用order,但是我不确定如何构造它才能使其工作。
def total_extra_guest_price(reservation, res_guest)
sum_guest = 0
sum_amount_guests = 0
age_table_list = []
reservation.reservation_extra_guests.each do |guest|
sum_amount_guests += guest.extra_guest_quantity
end
# persons included vs persons reservation
#if more persons
if reservation.room.room_category.persons_included < sum_amount_guests
#count number of too many persons
extra_persons = sum_amount_guests - reservation.room.room_category.persons_included
# iterate over extra_guests belonging to reservation to get age_tables
reservation.reservation_extra_guests.each do |extra_guest_item|
age_table_list << extra_guest_item.extra_guest.age_table
end
#rank age tables, so lowest rank can be used to calculate price. Issue!!!
age_table_list.order(:rank)
end
end
答案 0 :(得分:1)
对于您的问题,我不是100%清楚,因此我的建议可能不是最佳解决方案。但是您可以尝试sort_by()
age_table_list.sort_by{ |age_table| age_table.rank }
了解更多here