IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

RoR初学笔记

idv2 2012-08-07 13:37:42 累计浏览 1,851 次
本机暂存

    今天开始学习RoR,刚开始入门就遇到一些问题,记笔记如下。以下运行环境均为MacOS 10.6 + MacPorts 2.0.4,ruby为MacPorts下的ruby1.9.3-p125_0。

rails-3.2.3升级到rails-3.2.7的问题

    由于教程使用的rails版本是3.2.7,而我以前安装的rails为3.2.3,于是想升级一下。

$ rails -v
Rails 3.2.3
$ sudo gem update rails
...
Successfully installed rails-3.2.7

    gem报告已正确安装了rails-3.2.7,查看gem list的确也安装成功了:

$ gem list --local
...
rails (3.2.7, 3.2.3)

    但运行rails的版本号还是3.2.3:

$ rails -v
Rails 3.2.3

    百思不得其解。后来查看rails-3.2.7的升级指南时发现,gem版本必须>=1.8.24,而我的gem版本为1.8.22。于是先升级了下gem:

$ gem update --system

    升级之后再运行rails就正确了(不用重新gem update rails了):

$ rails -v
Rails 3.2.7

bundle exec rake db:migrate错误

    按照教程更新数据库时发生错误:

$ bundle exec rake db:migrate
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/dependency.rb:52:in `initialize\': Valid types are [:development, :runtime], not nil (ArgumentError)

    查明原因,原来是我用的ruby为MacPorts中的ruby1.9,实际的可执行文件为/opt/local/bin/ruby19,为了方便使用,我做了符号链接:

$ ls -l /opt/local/bin/ruby
lrwxr-xr-x  1 root  admin  7 25 Apr 10:39 /opt/local/bin/ruby -> ruby1.9

    但rake命令仍然是Mac系统自带的rake(囧):

$ which rake
/usr/bin/rake

    解决办法就简单了。由于我的PATH设置中/opt/local/bin优先于/usr/bin,那么只需在/opt/local/bin下建立rake19的符号链接就行了。

$ cd /opt/local/bin
$ sudo ln -s rake19 rake

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 每个程序员都应该学习使用Python或Ruby (累计阅读 17,917)
  2. 我的PHP,Python和Ruby之路 (累计阅读 13,146)
  3. Ruby 和 Python (累计阅读 7,071)
  4. 从Rails聊聊小公司的研发团队建设 (累计阅读 5,571)
  5. 晒晒我们的开源项目 (累计阅读 5,454)
  6. 记上海Python社区聚会,谈Python和Ruby (累计阅读 4,948)
  7. Ruby 解析 HTML (Nokogiri) (累计阅读 4,945)
  8. 谁能看明白这幅Java、PHP、C、Ruby语言相互吐槽的搞笑图片都说的是什么? (累计阅读 4,356)
  9. APP图标的色彩 (累计阅读 4,056)
  10. 编程语言介绍之Ruby on Rails (累计阅读 3,894)