当前位置:  开发笔记 > 后端 > 正文

在Ubuntu上运行Rails时遇到问题

如何解决《在Ubuntu上运行Rails时遇到问题》经验,为你挑选了1个好方法。

首先是一些背景.我正在尝试在全新安装的Ubuntu上运行Community Engine.CE是一个在Rails上运行的开放式src社交网络插件.我能够在没有问题的情况下在我的Windows框上运行CE并运行.我现在决定使用Ubuntu 8.10作为我的开发环境,并且我坚持这个问题.我在过去的几个晚上研究了这个,但仍然卡住了.

当我到达指令的这一步(在这里找到)时会发生什么:

  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]

和我安装的宝石:

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时,我收到了这个错误.

是的,我有更多的宝石,而不是我需要的CE,但在试图追踪这一点时,这就是我最终的结果.我有一种潜在的怀疑,无论问题是什么,它都是愚蠢的,我应该抓住它.但是在这一点上,我对XP盒子上的简单过程感到非常沮丧.

我在社区引擎谷歌小组中提出了这个问题,但是,我觉得这与我在我的机器上设置Ruby和Rails比与CE本身有关.

帮助将不胜感激.



1> Orion Edward..:

"问题"不是来自CommunityEngine本身,而是来自底层的"引擎"插件(http://github.com/lazyatom/engines).

查看引擎插件中boot.rb的源代码,我们可以看到它只是检查标准的Rails :: VERSION字段,所以问题也不存在.

现在,当您创建rails应用程序时,它与您第一次创建rails应用程序时使用的特定版本相关联.只是让你的系统上的轨道2.1.1/2宝石并不意味着它们会自动被使用.

要检查您的实际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应用程序.
这非常简单:

    RAILS_GEM_VERSION字符串更改config/environment.rb为2.1.1或更高版本

    rake rails:upgrade

希望这能解决你的问题:-)

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有