Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有要加载的文件--初始值设定项(LoadError)_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 没有要加载的文件--初始值设定项(LoadError)

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

我在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/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)