19

I've been trying to use HTTParty in my rails code

sudo gem install httparty

From the command line I can now successfully do

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

When I try this in my rails app

require 'rubygems'
require 'httparty'

class FooController < ApplicationController
  include HTTParty

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

I get the error message "no such file to load -- httparty"

I suspect there is something wrong with my environment?

AllDayer
  • 993
  • 1
  • 9
  • 20

6 Answers6

25

You don't need to do 'include HTTParty' inside the Controller. Just remove that and it should work. I just tested it and it worked for me. If this doesn't work for you, you should add the gem to your environment.

Usually if you use a gem inside your Rails application, you should add the following to environment.rb:

config.gem "httparty"

The gem will be available in the application now and you don't need to add 'require' inside the Controller. Also, you don't need to require RubyGems inside a Controller.

When you use Rails 3, you need to put the following inside the Gemfile:

gem "httparty"

I hope it works for you. :)

RobinBrouwer
  • 973
  • 6
  • 13
  • I can confirm it's working on my end without including httparty. – gotnull Jan 07 '11 at 13:20
  • I would guess that he's using Rails 3 and that he hasn't put `gem 'httparty' in his Gemfile. – Ryan Bigg Jan 07 '11 at 13:23
  • Thanks for the reply. I had httparty in the gem file, but I've now removed the two requires and also the include. I now get the error "uninitialized constant FooController::HTTParty". I must be missing something really obvious, time for sleep I think. – AllDayer Jan 07 '11 at 14:52
  • Have you done a 'bundle update' inside your terminal after adding httparty to the Gemfile? I just tested it by putting the gem inside the Gemfile and it works great. – RobinBrouwer Jan 07 '11 at 15:06
  • 1
    I ended up loading this in a different project where it worked. Came back to the original project where it wasn't working, and presto, working. :-) – AllDayer Jan 08 '11 at 03:48
  • When I try adding 'config.gem "httparty"' to my environment.rb, I get this error when trying to start the rails server, "C:/Users/Ricky/dbapitest/config/environment.rb:1: undefined local variable or me thod `config' for main:Object (NameError)" – Rickmasta Jan 19 '11 at 06:16
  • @Rickmasta: You need to make sure you put it inside the block. So between 'Rails::Initializer.run do |config|' and 'end'. – RobinBrouwer Jan 21 '11 at 18:52
  • 3
    @Allayer: You might have done the same thing I did. Add to Gemfile, run bundle install, then forget to restart rails server! Maybe... Anyway, doing that did the trick for me. – Excalibur Oct 22 '12 at 15:49
  • I'm having this same error when trying to use HTTParty from a service object in Rails 4. Including it causes the error, not including it then calling it `HTTPart.get()` causes `an unintialized constant error` Any ideas? – dee May 11 '13 at 17:16
8

The problem is, if you load a new gem, you have to restart the server even if you are in development.

Harry Forbess
  • 2,094
  • 4
  • 16
  • 15
4

I had this same error. I tried moving the require HTTParty all over, but found, all I needed to do was restart the rails server In the end I did not need to 'require HTTParty' nor 'include' it. It just needed to be loaded into rails.

mendokusai
  • 107
  • 7
2

1)include the httpary in your gemfile

open your gem file then add

 gem 'httparty','YOUR VERSION NUMBER'

2) run bundle install in your command prompt of the app file

3) restart the server

1

Ran into the same problem. Then I switched from Ruby 1.8.7 to Ruby 1.9.2 and all errors varnished into thin air.

(Yes, it first took me quite some hours to come up with the possibility that the Ruby version might be the problem. Configured a secundairy server to avoid possible conflicts with 2 ruby versions, and after way to many hours I got my RoR stack up and running. And the first test with httparty (based on the example on top) worked out of the box! Finally can sleep RESTfully again :-)

Dr.Bob
  • 1,152
  • 1
  • 8
  • 10
0

I run into the same error whilst reviewing a project from a student, I change the name of the Gem from uppercase to lowercase then run bundle install. I then went ahead to change the format in which they were being imported from require 'HTTParty' to require 'httparty' and boom it worked

Addo
  • 273
  • 3
  • 8