问题描述
|
我完成了Rails 3.0.6的全新安装。我的应用程序运行正常,但是我无法使用Rails 3附带的所有宝石。所有宝石都在宝石列表中。我在Gemfile中也有它们,并已运行包安装和包更新。
例如,使用matthuhiggins-foreigner:
在耙db:migrate时,它抱怨
未定义add_foreign_key。
我有更少的同样的问题:
没有从.less生成的.css)
geokit-rails3:
未知密钥:来源,在
geokit-rails3返回的gem:
/Library/Ruby/Gems/1.8/gems/geokit-rails3-0.1.3/lib/geokit-rails3.rb
gem环境返回:
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/
我已经研究了很长时间了。请帮忙!
谢谢!
解决方法
Rails 3不会加载Gemfile中未列出的所有gem,即使它们已安装在系统中也是如此。您需要先在此处明确列出它们。
R3中的典型工作流程不是先安装您的gems,然后使用它们,而是在Gemfile中写入条目,然后通过使用\“ gem install bundle \”安装bundler并通过\“ bundle install \\”获取所有剩余的gems来安装它们。 ”。捆绑安装将安装您尚未拥有的所有必需的gem,但将使用您拥有的gem。
(另一位用户建议的捆绑更新会将您的所有gem升级到Gemfile中列出的符合您要求的最新可用版本,即使已安装的gem符合要求)。也就是说,如果您需要foo_gem> = 1.0并且安装了foo_gem 1.0.1,则“捆绑安装”将不会对其进行更改,但是“捆绑更新”将安装foo_gem 1.0.3(如果有)。
如果您正在处理具有冲突(或潜在冲突)gem的多个应用程序,那么我建议您了解RVM并为每个项目创建一个gemset。如果您仍在与R3项目一起在任何Rails 2.x项目上工作,那么这特别有价值。
,尝试这个:
通过运行
gem update --system
更新gem
确保您的gemfile列出了宝石
运行bundle update
更新gemfile中的所有gem
希望这可以解决问题。
,几天后我又回到了这个问题,我解决了所有问题!
matthuggins-foreigner gem被称为外国人,所以我将其添加到Gemfile中:
宝石“外国人”
使用geokit时,我只是按照以下说明进行操作:
https://github.com/jlecour/geokit-rails3
使用更少的东西,我安装了更少的gem和更多的插件,然后重新启动了服务器:
https://github.com/cloudhead/more