【发布时间】:2019-11-22 14:46:59
【问题描述】:
发生了一些奇怪的事情。当我运行下面的代码时,我得到了错误
Input/output error @ io_write - <STDOUT>
由于它仅在我运行此代码时发生,我认为它与这部分代码有关,但如果需要更多信息,请告诉我。
型号
def total_extra_guest_price(reservation)
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 to get res_guest.guest.age_table
reservation.reservation_extra_guests.each do |extra_guest_item|
age_table_list << extra_guest_item.extra_guest.age_table
end
#rank age_tables
age_table_list=age_table_list.sort_by{|item| item['rank']}.reverse!
#while number_to_many persons != 0
while extra_persons != 0
reservation.reservation_extra_guests.each do |res_extra_guest|
age_table_list.each do |age_table|
while res_extra_guest.extra_guest.age_table == age_table && res_extra_guest.extra_guest_quantity != 0
# binding.pry
# binding.pry
(reservation.arrival...reservation.departure).each do |date|
res_extra_guest.extra_guest.extra_guest_prices.each do |price|
if (price.start_date..price.end_date).include? date
sum_guest += price.price
end
end
end
res_extra_guest.extra_guest_quantity -= 1
extra_persons -= 1
end
end
end
end
end
end
【问题讨论】:
标签: ruby-on-rails activerecord