1

I wanted to generate a new migration for a site running Rails 2.3.14 and Ruby 1.8.7. I wrote the command

ruby script/generate migration AssetTable

Expecting the script to generate a file 20130522161112_asset_table.rb in the db/migrate directory. But I don't see this file. The output I get after running the above command is:

/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

Does anyone know what I'm doing wrong here?

4

1 回答 1

2

根据您的 ruby​​gems 版本,您可以尝试运行:

$ gem install rubygems-update -v='1.4.2'
$ gem uninstall rubygems-update -v='1.5.0'
$ update_rubygems

在这里看到:Rails 2.3.4 中的 Gem 依赖错误

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

于 2013-05-22T21:31:04.470 回答