rails 3:gems安装成功,但无法在我的应用中使用它们

时间:2011-04-15 21:24:49

标签: ruby-on-rails-3 gem

我做了一个干净的rails 3.0.6安装。我的应用程序运行正常,但我不能使用所有没有带有rails 3的宝石。所有这些都在gem列表中。我也在Gemfile中使用它们并运行了bundle install和bundle update。

例如,使用matthuhiggins-foreignigner:

  

在rake db:migrate上,它抱怨道   没有定义add_foreign_key。

我遇到同样的问题:

  

没有.css来自.less)

geokit-Rails3中:

  

未知密钥:来源,

geokit-rails3返回的gem:

/Library/Ruby/Gems/1.8/gems/geokit-rails3-0.1.3/lib/geokit-rails3.rb

宝石环境回归:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.0
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-10
  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/administrator/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

我已经研究过这个问题很长一段时间了。请帮忙! 谢谢!

3 个答案:

答案 0 :(得分:1)

Rails 3不会加载Gemfile中未列出的任何gem,即使它们已安装在您的系统上也是如此。您需要先在那里明确列出它们。

R3中的典型工作流程不是安装你的宝石然后使用它们,而是在Gemfile中写入条目,然后通过安装带有“gem install bundle”的bundler安装它们,并通过“bundle install”获取所有剩余的宝石。捆绑安装将安装您尚未拥有的任何所需宝石,但将使用您拥有的宝石。

(另一个用户建议的捆绑更新会将您的所有宝石都提升到符合Gemfile中所列要求的最新可用版本,即使已安装的版本满足要求)。即如果您需要foo_gem> = 1.0且安装了foo_gem 1.0.1,“bundle install”将不会更改它,但“bundle update”将安装foo_gem 1.0.3(如果可用)。

如果您正在处理具有冲突(或可能存在冲突)的宝石的多个应用程序,那么我建议您了解RVM并为每个项目创建gemset。如果您仍然在R3项目中处理任何Rails 2.x项目,那么这一点尤为重要。

答案 1 :(得分:0)

试试这个:

  1. 运行gem update --system
  2. 更新gem
  3. 确保您的gemfile列出了宝石
  4. 运行bundle update更新gemfile中的所有宝石
  5. 希望这应该成功。

答案 2 :(得分:0)

几天后我回到了这个问题,我解决了所有问题!

matthuggins-foreigner gem被称为外国人,所以我把它添加到Gemfile: 宝石'外国人'

使用geokit,我只需按照这里的说明操作: https://github.com/jlecour/geokit-rails3

用更少的东西,我安装了更少的gem和更多的插件,然后重新启动服务器: https://github.com/cloudhead/more