2011-02-08 50 views
9
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 

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

P.S.如果我運行rails server並轉到mysite.com:3000所有作品沒有任何錯誤,那麼Passanger存在問題!

請幫幫我!

+0

您是否通過gem install mechanize安裝了機械化寶石?運行捆綁器時,只有gemfile中的寶石會被安裝。 – Gazler 2011-02-08 08:58:36

回答

17

你不應該在你的控制器中需要寶石。這就是爲什麼加入捆紮機到Rails 3 只需添加機械化到你的Gemfile這樣

gem "mechanize" 

和運行

bundle install 
在命令行上

。 這裏提到的任何寶石都將在應用程序啓動時需要。

5

您在Rails 3中管理依賴關係的方式是using the Gemfile and Bundler

編輯您的Gemfile並添加

gem "mechanize" 

然後運行

$ bundle install 

重新啓動服務器。該庫將自動加載。無需手動要求RubyGems。

+0

它的工作原理! :) 謝謝 – Kir 2011-02-08 21:42:47