Не удалось выделить память, ошибка NoMemoryError

#ruby

#ruby

Вопрос:

Я пытаюсь сериализовать объект и сохранить его в базе данных Postgresql, используя ActiveRecord в ruby (без rails). Для этого я использую следующий код:

   components.keys.each do |key|
    cphash = {:training_url => components[key][:training_url],
              :klass => key.to_s, 
              :component => Marshal::dump(components[key][:component]),
              :network_id => n}
    inline = Inline.new(cphash)
    inline.save!
  end 
  

Тем не менее, я продолжаю получать ошибку

 failed to allocate memory (NoMemoryError)
  

Как мне обойти это. Я попытался разбить объект на меньшие биты (я сохраняю каждый бит в ‘each’ выше), но я все еще получаю ошибку. Кто-нибудь знает, что дает.

Ответ №1:

Встроенный gem предназначен для запуска кода C в («встроенном») ruby.

http://www.zenspider.com/ZSS/Products/RubyInline/

Комментарии:

1. Ммм, inline — это не встроенный gem, это класс, который я написал

2. Хорошо, предоставьте исходный код. Как вы можете ожидать от нас помощи, если вы предоставляете не весь код? Ошибка NoMemoryError возникает по очень специфическим причинам.