2011-02-08 13 views
9
require 'rubygems' 
require 'mechanize' 

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

この単純なスクリプトはうまくいきます。ruby​​ gems in railsコントローラ

しかしI'amはRailsのコントローラに require 'rubygems'require 'mechanize'を追加しようとした場合、サーバーが与える:

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

私はUbuntuの10.04サーバーmachnineにRVMを使用しています。 Rubyのバージョン:1.9.2、Railsのバージョン:3.0.3。 サーバー:PassangerはApache2の下にあります。

P.S. rails serverを実行してmysite.com:3000に行ってもエラーは発生しませんので、Passangerに問題があります!

お願いします。

+0

gem install mechanizeでmechanize gemをインストールしましたか?あなたがgemfileの中の宝石だけがあなたがbundlerを走らせるときにインストールされます。 – Gazler

答えて

17

コントローラには宝石類は必要ありません。ザッツなぜバンドラーは、ちょうどこの

gem "mechanize" 

のようなあなたのGemfileに機械化を追加し、コマンドラインで

bundle install 

を実行します。3. をレールに追加されました。 ここに記載されている宝石は、アプリケーションの起動時に必要となります。

5

Rails 3の依存関係を管理する方法は、using the Gemfile and Bundlerです。

編集しGemfileとサーバを再起動します

$ bundle install 

を実行し

gem "mechanize" 

を追加します。ライブラリが自動的に読み込まれます。手動でRubyGemsを要求する必要はありません。

+0

それは動作します! :)ありがとう – Kir

関連する問題