我做了一个干净的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/
我已经研究过这个问题很长一段时间了。请帮忙! 谢谢!
答案 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)
试试这个:
gem update --system
bundle update
更新gemfile中的所有宝石希望这应该成功。
答案 2 :(得分:0)
几天后我回到了这个问题,我解决了所有问题!
matthuggins-foreigner gem被称为外国人,所以我把它添加到Gemfile: 宝石'外国人'
使用geokit,我只需按照这里的说明操作: https://github.com/jlecour/geokit-rails3
用更少的东西,我安装了更少的gem和更多的插件,然后重新启动服务器: https://github.com/cloudhead/more