Kir*_*Kir 9 ruby-on-rails apache2 passenger rvm
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://google.com/")
Run Code Online (Sandbox Code Playgroud)
这个简单的脚本工作正常.
但是,如果我'尝试添加
require 'rubygems'和require 'mechanize'Rails的控制器,服务器为:
LoadError in NewsController#find
no such file to load -- mechanize
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu 10.04服务器machnine上使用RVM.Ruby版本:1.9.2,Rails版本:3.0.3.服务器:Apache2下的Passanger.
PS如果我运行rails server并转到mysite.com:3000所有工作没有任何错误,所以Passanger有问题!
请帮我!
fli*_*ald 17
您不应该在控制器中需要宝石.这就是为什么Bundler被添加到Rails 3.只需将机械化添加到你的Gemfile就像这样
gem "mechanize"
Run Code Online (Sandbox Code Playgroud)
并运行
bundle install
Run Code Online (Sandbox Code Playgroud)
在命令行上.应用程序启动时将需要此处提到的任何gem.
在Rails 3中管理依赖项的方法是使用Gemfile和Bundler.
编辑Gemfile并添加
gem "mechanize"
Run Code Online (Sandbox Code Playgroud)
然后跑
$ bundle install
Run Code Online (Sandbox Code Playgroud)
重启服务器.库将自动加载.无需手动需要RubyGems.