Хобрук: Ваш путь к мастерству в программировании

Gsub на Fixnum? неопределенный метод `gsub' для 55:Fixnum

С помощью следующей функции я иду на сайт, просматриваю некоторую информацию, получаю некоторый JSON и помещаю его в переменную экземпляра @price.

JSON, который мне возвращается, представляет собой число, но если число больше 1000, то число будет содержать запятую, поэтому я подставляю его.

  def iteminfo(id)
    url = "http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=#{id}"
    page = Nokogiri::HTML(open(url))
    info = JSON.parse(page.text)
    namefinder =  info['item']['name']
    pricefinder = info['item']['current']['price']
    name = namefinder
    @price = pricefinder.gsub(',', '').to_i
  end

Я уже пробовал это:

if pricefinder.to_i > 1000
  @price = pricefinder.gsub(',', '').to_i
else
  @price = pricefinder.to_i
end

что избавляет от ошибки, но искажает математику, выполняемую на @price Как я могу это исправить?


Ответы:


1

Похоже, вам нужно приспособиться к получению либо числа, либо строки. Есть несколько способов справиться с этим, но один из них:

@price = pricefinder.to_s.gsub(',', '').to_i
12.01.2014
  • Благодарю вас! Я полагаю, что несколько минут так и не пришли :P 15.08.2014

  • 2

    В ошибке указано, что вы пытаетесь вызвать метод gsub для объекта типа Fixnum (это говорит мне о том, что вы имеете дело со строками и числами одновременно).

    Что-то вроде этого может сработать:

    pricefinder.to_s.gsub(',', '').to_i
    
    12.01.2014
    Новые материалы

    Мой процесс подачи заявки в Школе программного обеспечения и дизайна Тьюринга
    Мой последний пост на Medium был в конце августа, и в нем я пообещал написать еще раз, рассказывая историю моего процесса подачи заявки в Школу программного обеспечения и дизайна Тьюринга ...

    Генерация ваших собственных удивительных QR-кодов с использованием Python
    QR-код (код быстрого ответа) — это разновидность матричных штрих-кодов (или двумерных штрих-кодов), изобретенных в 1994 году японской автомобильной компанией Denso Wave . Штрих-код —..

    Прогресс в технологии Трансформеров часть 3
    Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

    Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
    Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

    Приключения в Javascript, часть 1
    Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..