不推荐使用Gem.source_index,请使用规范.我应该重新安装Gem还是Rails?

Kev*_*n H 43 ruby ruby-on-rails deprecated

我正在Ubuntu 11上学习RoR.当我尝试生成应用程序时收到以下消息.我安装错误了吗?

$ rails generate controller Pages home contact
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/shared_helpers.rb:84.
Run Code Online (Sandbox Code Playgroud)

dsa*_*nin 52

这对我有用:降级rubygems:

gem update --system 1.6.2
Run Code Online (Sandbox Code Playgroud)

在以下地址找到了这个建议:不推荐使用Gem.source_index,使用规范#34

  • 对我来说工作很好,所有其他建议都失败了:/ (6认同)

dex*_*ter 28

试试这个:

sudo gem update bundler
Run Code Online (Sandbox Code Playgroud)

这会将bundler更新到最新版本(目前为1.0.15).这不会产生警告,或者至少在我的情况下这是警告的原因.

  • 嘿@Castanho尝试只运行gem update bundler(没有sudo). (3认同)
  • yupp ...`gem update bundler`(没有sudo)为我工作.谢谢@KevinTsoi (2认同)

Kor*_*tor 14

解决这个问题的最佳方法是:

$ gem pristine --all --no-extensions
Run Code Online (Sandbox Code Playgroud)

这将重建所有宝石(不包括具有原生扩展名的宝石)并更新其gemspecs.如果您没有任何具有本机扩展名的gem,或者您没有在这些gem上使用任何自定义编译标志,那么您也可以省略该--no-extensions标志.否则你将不得不单独构建它们.

  • 我尝试了命令(带有"--no-extensions"而没有"--no-extensions",但我仍然收到相同的错误消息.感谢您表示您关心这个问题.我继续尝试更多看到你的帖子之后的东西,我能够偶然发现一个解决方案:) (2认同)