【问题标题】:Error message: Input/output error @ io_write - <STDOUT>错误消息:输入/输出错误@io_write - <STDOUT>
【发布时间】: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


    【解决方案1】:

    这是 Rails/Puma 进程的问题。

    你也可以试试这个技巧:

    ps aux | grep puma
    

    样本输出:

    myname           77921   0.0  0.0  2433828   1972 s000  R+   11:17AM   0:00.00 grep puma
    myname           67661   0.0  2.3  2680504 191204 s002  S+   11:00AM   0:18.38 puma 3.11.2 (tcp://localhost:3000) [my_proj]
    

    然后:

    kill -9 67661
    

    来源:Address already in use - bind(2) (Errno::EADDRINUSE)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      相关资源
      最近更新 更多