18

我一直在尝试在我的 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”

我怀疑我的环境有问题?

4

6 回答 6

23

您不需要在控制器中执行“包含 HTTParty”。只需删除它,它应该可以工作。我刚刚测试了它,它对我有用。如果这对您不起作用,您应该将 gem 添加到您的环境中。

通常,如果您在 Rails 应用程序中使用 gem,您应该在 environment.rb 中添加以下内容:

config.gem "httparty"

gem 现在将在应用程序中可用,您无需在 Controller 中添加“require”。此外,您不需要在 Controller 中使用 RubyGems。

使用 Rails 3 时,需要在 Gemfile 中放入以下内容:

gem "httparty"

我希望这个对你有用。:)

于 2011-01-07T13:17:43.887 回答
8

问题是,如果你加载一个新的 gem,即使你正在开发中,你也必须重新启动服务器。

于 2013-07-10T17:17:06.090 回答
4

我有同样的错误。我尝试require HTTParty全部移动,但发现,我需要做的就是重新启动rails server最终我不需要“要求 HTTParty”也不需要“包含”它。它只需要被加载到导轨中。

于 2015-03-14T06:26:37.257 回答
2

1)在你的gemfile中包含httpary

打开你的gem文件然后添加

 gem 'httparty','YOUR VERSION NUMBER'

2)bundle install在应用文件的命令提示符下运行

3)重启服务器

于 2017-08-21T15:06:37.487 回答
1

遇到同样的问题。然后我从 Ruby 1.8.7 切换到 Ruby 1.9.2,所有错误都化为乌有。

(是的,我首先花了好几个小时才想出 Ruby 版本可能是问题的可能性。配置了一个 secundairy 服务器以避免与 2 个 ruby​​ 版本可能发生冲突,经过很多小时后,我得到了我的 RoR 堆栈并运行。使用 httparty 的第一个测试(基于上面的示例)开箱即用!终于可以再次进入 RESTfully 了 :-)

于 2011-10-02T13:59:24.063 回答
0

我在查看学生的项目时遇到了同样的错误,我将 Gem 的名称从大写更改为小写,然后运行 ​​bundle install。然后我继续更改它们被导入的格式 require 'HTTParty'require 'httparty'使其工作

于 2020-06-09T20:18:48.477 回答