在rails控制器中需要ruby gems

时间:2011-02-08 08:54:31

标签: ruby-on-rails apache2 passenger rvm

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
page = agent.get("http://google.com/")

这个简单的脚本可以正常工作。

但如果我想加入 require 'rubygems'require 'mechanize'到Rails控制器,服务器给出:

LoadError in NewsController#find
no such file to load -- mechanize

我在Ubuntu 10.04服务器machnine上使用RVM。 Ruby版本:1.9.2,Rails版本:3.0.3。 服务器:Apache2下的Passanger。

P.S。如果我运行rails server并转到mysite.com:3000,所有工作都没有任何错误,因此Passanger存在问题!

拜托,帮助我!

2 个答案:

答案 0 :(得分:17)

您不应该在控制器中需要宝石。这就是Bundler被添加到Rails 3的原因。 只需将机械化添加到您的Gemfile中就像这样

gem "mechanize"

并运行

bundle install
命令行上的

。 应用程序启动时将需要此处提到的任何gem。

答案 1 :(得分:5)

在Rails 3中管理依赖项的方式是using the Gemfile and Bundler

编辑Gemfile并添加

gem "mechanize"

然后运行

$ bundle install

重启服务器。库将自动加载。无需手动需要RubyGems。