Ruby on rails 没有要加载的文件--初始值设定项(LoadError)
我在Ubuntu12上安装了以下内容Ruby on rails 没有要加载的文件--初始值设定项(LoadError),ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我在Ubuntu12上安装了以下内容 ruby 1.9.2p320 轨道3.2.6 现在我有一个老项目,它被开发成Rails2和Ruby1.8.7 问题: 当我在旧项目根目录下运行下面的命令时 ruby ./script/plugin install git://github.com/rails/rails_upgrade.git 下面是一个错误 Invalid gemspec in [/usr/local/rvm/gems/ruby-1.9.2-p320/specifications/Z
- ruby 1.9.2p320
- 轨道3.2.6
ruby ./script/plugin install git://github.com/rails/rails_upgrade.git
下面是一个错误
Invalid gemspec in [/usr/local/rvm/gems/ruby-1.9.2-p320/specifications/ZenTest-4.9.1.gemspec]: Illformed requirement ["< 2.1, >= 1.8"]
/usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': no such file to load -- initializer (LoadError)
from /usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /var/www/project/client/softwallet/config/boot.rb:54:in `load_initializer'
from /var/www/project/client/softwallet/config/boot.rb:38:in `run'
from /var/www/project/client/softwallet/config/boot.rb:11:in `boot!'
from /var/www/project/client/softwallet/config/boot.rb:109:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from ./script/plugin:2:in `<main>'
[/usr/local/rvm/gems/ruby-1.9.2-p320/specifications/ZenTest-4.9.1.gemspec]中的gemspec无效:要求不正确[“<2.1,>=1.8”]
/usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_-ruby/1.9.1/rubygems/custom_-require.rb:55:在“require”中:没有这样的文件要加载--初始值设定项(LoadError)
from/usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site\u ruby/1.9.1/rubygems/custom\u require.rb:55:in'require'
from/var/www/project/client/softwallet/config/boot.rb:54:in'load_initializer'
from/var/www/project/client/softwallet/config/boot.rb:38:in'run'
从/var/www/project/client/softwallet/config/boot.rb:11:in'boot!'
从/var/www/project/client/softwallet/config/boot.rb:109:in`'
from:29:in'require'
from:29:in'require'
from./script/plugin:2:in`'
当您的环境中已经安装了同一gem的不兼容版本时,就会发生这种情况。 要更正,您可以卸载并重新安装gem,或者安装特定版本的gem
在执行此操作之前,请确保执行gem清理操作。将旧rails项目升级为新项目,并出现
无效gempec
问题
然后,您必须执行以下操作:
运行gem更新--system
,然后运行bundle安装
更新:
您使用的是旧版本rails应用程序中相同的config/boot.rb
请执行以下操作:
1) 创建一个新的项目目录
2) 生成新的rails应用程序(新的最新rails版本)
3) 使用它创建的
boot.rb
。这就是我的问题的解决方法。我使用的是RVM,如果您已经编辑了这些.bashrc文件,那么每次登录shell时,都要执行/bin/bash--login。这样做的目的是,它使命令行记录您设置的rvm路径,并首先安装它们
我在Ubuntu12上做了这件事,它确实解决了我的问题,我不认为做gem更新——系统是个好主意,因为它真的会把环境搞得一团糟,迫使一个人做一个rvm内爆,然后重新安装它。你的解决方案与
无效的gempec
或没有这样的文件来加载——初始化器(LoadError)
使用rvm
。因此,当您使用旧项目时,使用1.8.7将ruby版本更改为旧版本,如果使用新项目,则使用rvm use 1.9.2
。这将消除任何不兼容问题。但我想将Rails2项目升级为Rails3Thanks!但是如何解决这个没有这样的文件要加载的问题--初始化器(LoadError)
我需要将新的boot.rb
文件复制到旧项目中然后运行吗?是的,这就是你必须做的。基本上,旧版本和新版本的路由
以及environment.rb
更改也存在很大差异。因此,您可能还需要在某个时间点更改routes.rb
和environment.rb
,以使其完全工作。请参见此处rails 2和rails 3的路由差异:现在我得到require':没有这样的文件要加载--命令/插件(LoadError)