缺少Rails gem错误,但已安装!

所以我是rails的新手,我实际上正在关注Lynda.com的video教​​程,以便学习它。 我没有按照安装在video上的步骤进行操作,因为我听说过RVM,到目前为止它已经完成了所有设置。 但我仍然在video的早期,并且不能通过一些非常简单的事情……所以我希望有人可以帮助我。

有一些背景:

  • 我安装了RVM并创建了1.8.7@rails2.3.8。 我能够安装ruby和铁轨,这里的一切都很好。 我甚至为mysql和passenger设置了一个全局gemset。

  • 我使用的是乘客而不是WEBrick(本教程使用的),我甚至可以加载apache模块,当我创建一个rails应用程序时一切正常。 我可以去simple-cms.local,我看到介绍页面很好。

所以这就是问题所在。 在关注video的同时,我到了script/generate controller say的地步,并且它创建了控制器,没有错误。 然后我继续在控制器中定义一个动作“hello”,并在app / view / say文件夹中定义相应的视图“hello.rhtml”。

现在,当我尝试访问simple-cms.local时,它仍然有效,但是当我尝试访问simple-cms.local / say / hello.rhtml时,我收到错误!

Ruby on Rails应用程序无法启动

应用程序已在启动期间退出(即在评估config / environment.rb期间)。 错误消息可以在下面找到。 要解决此问题,请按照错误消息中的任何说明进行操作。

错误消息:缺少Rails 2.3.8 gem。 请使用gem install -v=2.3.8 rails ,在config / environment.rb中更新您已安装的Rails版本的RAILS_GEM_VERSION设置,或注释掉RAILS_GEM_VERSION以使用安装的最新版本。

那我该怎么办? 我的意思是安装了rails 2.3.8,为什么它会告诉我再次安装它?


更新:

我从app目录中运行了gem environment并得到了它

 RubyGems Environment: - RUBYGEMS VERSION: 1.3.7 - RUBY VERSION: 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.4.0] - INSTALLATION DIRECTORY: /Users/user/.rvm/gems/ruby-1.8.7-p302@rails2 - RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-1.8.7-p302/bin/ruby - EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/ruby-1.8.7-p302@rails2/bin - RUBYGEMS PLATFORMS: - ruby - x86-darwin-10 - GEM PATHS: - /Users/user/.rvm/gems/ruby-1.8.7-p302@rails2 - /Users/user/.rvm/gems/ruby-1.8.7-p302@global - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 

然后运行script/console ,然后运行Gems.path ,返回

 ["/Users/user/.rvm/gems/ruby-1.8.7-p302@rails2", "/Users/user/.rvm/gems/ruby-1.8.7-p302@global"] 

看起来很好,我们呢?


更新2:

好的,所以没有什么对我有用! 我还没有尝试过Passenger Standalone,但是我需要使用apache,我读到它独立使用nginx。 我到目前为止尝试的是从头开始, rvm implode然后再安装rvm,ruby 1.8.7,passenger,mysql,rails 2.3.8,就是这样。 访问我的应用程序时,我仍然无法通过默认页面! 然后我也尝试按照Chris Johnsen在评论中链接的指南无效。

欢迎所有想法……

问题是我正在将乘客安装到全球gem集中,这应该不是问题,但确实如此。

我从全球gemset中卸载了乘客,并将其安装到我正在使用的项目gemset中。 这解决了丢失的rails gem错误,现在我在尝试访问simple-cms.local / say / hello时遇到500错误。 我将为此创建一个新问题,并将此标记解决!

试试Phusion Passenger Standalone。 每个实例都将使用当前加载的RVM和gemset。