Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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 生成Ruby迁移时遇到问题_Ruby On Rails_Ruby_Rails Migrations - Fatal编程技术网

Ruby on rails 生成Ruby迁移时遇到问题

Ruby on rails 生成Ruby迁移时遇到问题,ruby-on-rails,ruby,rails-migrations,Ruby On Rails,Ruby,Rails Migrations,我想为运行Rails 2.3.14和Ruby 1.8.7的站点生成一个新的迁移。我写了命令 ruby script/generate migration AssetTable 希望脚本在db/migrate目录中生成文件2013052161112_asset_table.rb。但是我没有看到这个文件。运行上述命令后得到的输出是: /var/lib/gems/1.8/gems/rails-2.3.14/lib/rails/gem_dependency.rb:81:in `add_load_pat

我想为运行Rails 2.3.14和Ruby 1.8.7的站点生成一个新的迁移。我写了命令

ruby script/generate migration AssetTable
希望脚本在db/migrate目录中生成文件2013052161112_asset_table.rb。但是我没有看到这个文件。运行上述命令后得到的输出是:

/var/lib/gems/1.8/gems/rails-2.3.14/lib/rails/gem_dependency.rb:81:in `add_load_paths':      undefined method `requirement' for #<Rails::GemDependency:0x7ffd183eba58> (NoMethodError)
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:in `add_gem_load_paths'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:in `each'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:in `add_gem_load_paths'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:132:in `process'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:113:in `send'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:113:in `run'
    from /var/www/pbcore/releases/20120416101734/config/environment.rb:17
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /var/lib/gems/1.8/gems/rails-2.3.14/lib/commands/generate.rb:1
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require
/var/lib/gems/1.8/gems/rails-2.3.14/lib/rails/gem_dependency.rb:81:in'add_load_path':未定义的方法'requirement'(NoMethodError)
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:“添加gem\u加载路径”
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:in'each'
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:301:“添加gem\u加载路径”
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:132:在“进程”中
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:113:in'send'
from/var/lib/gems/1.8/gems/rails-2.3.14/lib/initializer.rb:113:in'run'
摘自/var/www/pbcore/releases/20120416101734/config/environment.rb:17
from/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in'gem_original_require'
from/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in'require'
来自/var/lib/gems/1.8/gems/rails-2.3.14/lib/commands/generate.rb:1
from/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in'gem_original_require'
from/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in`require

有人知道我做错了什么吗?

根据您的rubygems版本,您可以尝试运行:

$ gem install rubygems-update -v='1.4.2'
$ gem uninstall rubygems-update -v='1.5.0'
$ update_rubygems
在这里看到::

发生这种情况是因为您安装了RubyGems,这对您来说太新了 您的Rails版本。降级(并重新运行更新\u rubygems) 或者将Rails升级到2.3.11


所以问题是我有Ruby1.8.7,我需要降级到一个更早的版本,使它能与Rails 2.3.14一起工作?嗯,我只是读了一点帖子,我认为你必须降级rubygems,而不是Rubyth。答案是:“这是因为你安装了rubygems,这对你的Rails版本来说太新了。要么降级,要么降级(并重新运行update\u rubygems)或将Rails升级到2.3.11。“好吧,我试着降级到rubygems 1.3.5,但当我运行
$update\u rubygems
时,我得到了
-bash:update\u rubygems:command not found
我开始认为这与路径有关,但不确定