【发布时间】:2013-05-22 19:33:49
【问题描述】:
我想为运行 Rails 2.3.14 和 Ruby 1.8.7 的站点生成新的迁移。我写了命令
ruby script/generate migration AssetTable
期望脚本在 db/migrate 目录下生成文件 20130522161112_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
有谁知道我在这里做错了什么?
【问题讨论】:
-
所以问题是我有 Ruby 1.8.7,我需要降级到早期版本才能使其与 Rails 2.3.14 一起使用?
-
嗯,我只是看了一点帖子,我认为你必须降级 rubygems,而不是 ruby
-
答案是:“发生这种情况是因为您安装的 RubyGems 对于您的 Rails 版本来说太新了。要么降级(并重新运行 update_rubygems),要么将 Rails 升级到 2.3.11。”跨度>
标签: ruby-on-rails ruby rails-migrations