Проблемы с включением httparty в ruby ​​on rails

Я пытался использовать HTTParty в своем коде на рельсах.

sudo gem install httparty

Теперь из командной строки я могу успешно выполнить

httparty "http://twitter.com/statuses/public_timeline.json"

Когда я пробую это в своем приложении rails

require 'rubygems'
require 'httparty'

class FooController < ApplicationController
  include HTTParty

  def bar
    blah = HTTParty.get("http://twitter.com/statuses/public_timeline.json")
  end
end

Я получаю сообщение об ошибке "Нет такого файла для загрузки -- httparty"

Я подозреваю, что что-то не так с моей средой?


person AllDayer    schedule 07.01.2011    source источник


Ответы (6)


Вам не нужно включать HTTParty внутри контроллера. Просто удалите это, и это должно работать. Я только что проверил это, и это сработало для меня. Если это не работает для вас, вы должны добавить драгоценный камень в свою среду.

Обычно, если вы используете гем внутри своего приложения Rails, вы должны добавить следующее в environment.rb:

config.gem "httparty"

Драгоценный камень теперь будет доступен в приложении, и вам не нужно добавлять «require» внутри контроллера. Кроме того, вам не нужно требовать RubyGems внутри контроллера.

Когда вы используете Rails 3, вам нужно поместить в Gemfile следующее:

gem "httparty"

Я надеюсь, что это работает для вас. :)

person RobinBrouwer    schedule 07.01.2011
comment
Я могу подтвердить, что это работает на моей стороне, не включая httparty. - person fulvio; 07.01.2011
comment
Я предполагаю, что он использует Rails 3 и что он не поместил `gem 'httparty' в свой Gemfile. - person Ryan Bigg; 07.01.2011
comment
Спасибо за ответ. У меня был httparty в файле gem, но теперь я удалил два требования, а также include. Теперь я получаю ошибку неинициализированной константы FooController::HTTParty. Должно быть, я упускаю что-то действительно очевидное, думаю, пора спать. - person AllDayer; 07.01.2011
comment
Выполняли ли вы «пакетное обновление» внутри своего терминала после добавления httparty в Gemfile? Я только что проверил это, поместив драгоценный камень в Gemfile, и он отлично работает. - person RobinBrouwer; 07.01.2011
comment
В итоге я загрузил это в другой проект, где это сработало. Вернулся к исходному проекту, где он не работал, и вуаля, работал. :-) - person AllDayer; 08.01.2011
comment
Когда я пытаюсь добавить «config.gem httparty» в свой файл environment.rb, я получаю эту ошибку при попытке запустить сервер rails, C:/Users/Ricky/dbapitest/config/environment.rb:1: неопределенная локальная переменная или я thod `config' для main:Object (NameError) - person Rickmasta; 19.01.2011
comment
@Rickmasta: вам нужно убедиться, что вы поместили его внутрь блока. Итак, между «Rails::Initializer.run do |config|» и конец'. - person RobinBrouwer; 21.01.2011
comment
@Allayer: Возможно, вы сделали то же самое, что и я. Добавьте в Gemfile, запустите установку пакета и забудьте перезапустить сервер rails! Может быть... Во всяком случае, мне это помогло. - person Excalibur; 22.10.2012
comment
У меня такая же ошибка при попытке использовать HTTParty из объекта службы в Rails 4. Включение его вызывает ошибку, не включая его, а затем вызывая его HTTPart.get() вызывает an unintialized constant error Есть идеи? - person dee; 11.05.2013

Проблема в том, что если вы загружаете новый гем, вам нужно перезапустить сервер, даже если вы находитесь в разработке.

person Harry Forbess    schedule 10.07.2013

У меня была такая же ошибка. Я попытался переместить require HTTParty повсюду, но обнаружил, что все, что мне нужно было сделать, это перезапустить rails server. В конце концов мне не нужно было «требовать HTTParty» или «включать» его. Его просто нужно было загрузить в рельсы.

person mendokusai    schedule 14.03.2015

1) включите httpary в свой gemfile

откройте файл драгоценного камня, затем добавьте

 gem 'httparty','YOUR VERSION NUMBER'

2) запустите bundle install в командной строке файла приложения

3) перезагрузить сервер

person ahmedaabouzied    schedule 21.08.2017

Столкнулся с той же проблемой. Затем я переключился с Ruby 1.8.7 на Ruby 1.9.2, и все ошибки растворились в воздухе.

(Да, сначала мне потребовалось несколько часов, чтобы прийти к выводу, что проблема может быть в версии Ruby. Настроил дополнительный сервер, чтобы избежать возможных конфликтов с двумя версиями ruby, и спустя много часов я получил свой стек RoR. И работает. И первый тест с httparty (на основе примера сверху) работал из коробки! Наконец-то снова можно спать спокойно :-)

person Dr.Bob    schedule 02.10.2011

Я сталкиваюсь с той же ошибкой при просмотре проекта от студента, я меняю имя драгоценного камня с верхнего на нижний регистр, а затем запускаю установку пакета. Затем я изменил формат, в котором они импортировались, с require 'HTTParty' на require 'httparty', и все заработало.

person Addo    schedule 09.06.2020