首先是一些背景。我正在尝试运行 Community Engine在全新安装的 Ubuntu 上。 CE 是一个运行在 Rails 上的 open src 社交网络插件。我能够在没有问题的情况下在我的 Windows 框上启动并运行 CE。我现在决定使用 Ubuntu 8.10 作为我的开发环境,并且被困在这个问题上。我在过去几个晚上对此进行了研究,但仍然卡住了。
发生的事情是,当我到达指令的这一步时(found here):
Generate the community engine migrations:
$ script/generate plugin_migration
我收到以下错误:
myuser@compy:~/Projects/MyProject$ script/generate plugin_migration
/home/myuser/Projects/MyProject/config/../vendor/plugins/engines/boot.rb:4: This version of the engines plugin requires Rails 2.1.1 or later! (RuntimeError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /home/myuser/Projects/MyProject/config/environment.rb:12
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /home/myuser/Projects/MyProject/vendor/rails/railties/lib/commands/generate.rb:1
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/generate:3
这是我的 ruby 版本:
myuser@compy:~/Projects/MyProject$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
和我安装的 gem:
myuser@compy:~/Projects/MyProject$ gem list
*** LOCAL GEMS ***
actionmailer (2.2.0, 2.1.2, 2.1.1)
actionpack (2.2.0, 2.1.2, 2.1.1)
activerecord (2.2.0, 2.1.2, 2.1.1)
activeresource (2.2.0, 2.1.2, 2.1.1)
activesupport (2.2.0, 2.1.2, 2.1.1)
aws-s3 (0.5.1)
builder (2.1.2)
capistrano (2.5.0)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
fastthread (1.0.1)
gem_plugin (0.2.3)
haml (2.0.4)
highline (1.4.0)
hpricot (0.6.164)
htmlentities (4.0.0)
mime-types (1.15)
mongrel (1.1.5)
net-scp (1.0.1)
net-sftp (2.0.1)
net-ssh (2.0.4)
net-ssh-gateway (1.0.0)
rails (2.2.0, 2.1.2, 2.1.1) <--- clearly I have rails 2.1.1 or greater
rake (0.8.3)
RedCloth (4.1.0)
rmagick (2.7.1)
sqlite3-ruby (1.2.4)
xml-simple (1.0.11)
当我也只有 rails 2.1.1 时,我得到了这个错误。
是的,我拥有的 gems 比我需要的 CE 多得多,但在试图追踪这一点时,这就是我最终得到的。我暗暗怀疑,无论问题是什么,它都是愚蠢的,我应该捕获它。但在这一点上,我对 XP 机器上的简单过程感到非常沮丧。
我在 Community Engine google 组中问过这个问题,但是,我觉得这与我在机器上设置 Ruby 和 Rails 的关系比与 CE 本身的关系更大。
帮助将不胜感激。
最佳答案
“问题”不是来自 CommunityEngine 本身,而是来自底层的“引擎”插件(http://github.com/lazyatom/engines)。
looking at the source code of boot.rb in the engines plugin我们可以看到它只是检查标准的 Rails::VERSION 字段,所以问题也不存在。
现在,当您创建 Rails 应用程序时,它与您首次创建 Rails 应用程序时使用的特定版本相关联。仅在您的系统上安装 rails 2.1.1/2 gem 并不意味着它们会自动被使用。
要检查您的实际 Rails 应用程序本身,请查看 Rails 应用程序中的 config/environment.rb
文件。你会看到这样的东西:
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION
如果低于 2.1.1,那么您需要升级您的 Rails 应用程序。
这非常简单:
- 将
config/environment.rb
中的RAILS_GEM_VERSION
字符串更改为 2.1.1 或更高版本 - 运行
rake rails:upgrade
希望这能解决您的问题:-)
关于mysql - 在 Ubuntu 上运行 Rails 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/265302/