mac上为了不在登录画面看到其他账户,我禁用了root账户,而每次用Terminal的时候,先获得sudo账户的权限:

sudo -s

mac本身就安装有ruby

ruby -v

查看当前安装的ruby版本

接下来安装RubyGems,它是一个rails框架的组件管理工具

gem update --system

同样的查看版本

gem -v /--version

有了gem以后,就可以安装rails

安装rails的命令是

gem install rails - remote

如果这样做一直没有反应,用ctrl+c 中断该命令的执行

有耐心的话可以等等,时间本来是比较长

我没耐心,就按照网上一个老的帖子的链接去rubyforge下载了必须安装的所有包到本地

(很遗憾的是rubyforge到5月就要关站了,算赶上末班车)

下载的文件有:

rails-2.2.3.gem

activesupport-2.2.3.gem

activerecord-2.2.3.gem

actionpack-2.2.3.gem

actionmailer-2.2.3.gem

rake-0.8.7.gem

activeresource-2.2.3.gem

然后直接

gem install rails-2.2.3.gem

安装完成后一看版本,rails -v 是2.2.3

接着安装SQL数据库

这里选择sqlite3,下载Precompiled Binaries for Mac OS X

然后就可以参照其说明文档开始创建一个名为ex1的数据库:

$ sqlite3 ex1

sqlite> create ...

sqlite> insert into ...

此处省略若干数据库操作语句。

然后我试图用命令创建一个rails项目

rails demo

出现了错误:

/Library/Ruby/Gems/2.0.0/gems/rails-2.2.3/lib/rails_generator/option.rb:32:in'default_options':undefined method 'write_inheritable_attributte' for Rails::Generator::Base:Class (NoMethodeError)

....

大概是ruby的版本和rails的版本不和谐,因为mac系统比较新,ruby也比较新。

重新执行

gem install rails

这下热闹了,开始安装rails 4.0所需要的各种组件

atomic-1.1.15.gem

thread_safe-0.2.0.gem

minitest-4.7.5.gem

tzinfo-0.3.38.gem

multi_json-1.8.4.gem

i18n-0.6.9.gem

activesupport-4.0.3.gem

erubis-2.7.0.gem

rack-1.5.2.gem

rack-test-0.6.2.gem

builder-3.1.4.gem

actionpack-4.0.3.gem

activerecord-deprecated_finders-1.0.3.gem

arel-4.0.2.gem

activemodel-4.0.3.gem

activerecord-4.0.3.gem

mime-types-1.25.1.gem

polyglot-0.3.4.gem

treetop-1.4.15.gem

mail-2.5.4.gem

actionmailer-4.0.3.gem

thor-0.18.1.gem

railties-4.0.3.gem

bundler-1.6.0.rc.gem

tilt-1.4.1.gem

hike-1.2.3.gem

sprocket-rails-2.0.1.gem

最后是rails-4.0.3.gem

成功安装之后Parsing documentation 若干

29 gems installed

回到提示符

这之后rails demo就出现正确的提示内容了,

Usage:

Options:

Runtime options:

Rails options:

Descriptions:

Example:

然后继续某一教程:

rails new path/HelloWorld

语法上比原先多了个new字

创建成功了。

ROR入门之旅的更多相关文章

  1. Swift语言入门之旅

    Swift语言入门之旅  学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...

  2. IOS-swift5.1快速入门之旅

    快速之旅 传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // P ...

  3. 云原生 - 体验Istio的完美入门之旅(一)

    作者:justmine 头条号:大数据达摩院 微信公众号:大数据处理系统 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便大家阅读,可以关注头条号或微信公众号,后 ...

  4. Vue入门之旅:一报错 Unknown ... make sure to provide the "name" option及error compiling template

    报错一: Unknown custom element: <custom-select> - did you register the component correctly? For r ...

  5. Cocos2d-x入门之旅[1]场景

    在游戏开发过程中,你可能需要一个主菜单,几个关卡和一个END的界面,如何组织管理这些东西呢? 和其他游戏引擎类似,Cocos也使用了场景(Scene) 这个概念 试想象一部电影或是番剧,你不难发现它是 ...

  6. Cocos2d-x入门之旅[2]精灵

    精灵就是cocos是屏幕上移动的对象,能被我们控制,比如我们HelloWorld场景的这个图片就是精灵(Sprite) 怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node) 准确的 ...

  7. Cocos2d-x入门之旅[3]动作

    Cocos通过动作(Action)可以让精灵动起来,把数个动作组成序列(Sequence)就能让精灵做出连续的动作,在动作中我们可以改变精灵的位置,旋转角度,缩放比例,等等 动作(Action) 首先 ...

  8. Cocos2d-x入门之旅[4]场景

    我们之前讲了场景图(Scene Graph) 的概念,继续之前你先要知道 场景图决定了场景内节点对象的渲染顺序 渲染时 z-order 值大的节点对象会后绘制,值小的节点对象先绘制 HelloWorl ...

  9. Cocos2d-x入门之旅

    Cocos通过动作(Action)让精灵动起来,把数个动作组成序列(Sequence)就能让精灵做出连续的动作,在动作中我们可以改变精灵的位置,旋转角度,缩放比例,等等 动作(Action)# 首先我 ...

随机推荐

  1. 淘宝分布式数据层:TDDL[转]

    淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer 外号:头都大了 ©_Ob)框架,主要解决了分库分表对应用的透明化以及异构数据库之间的数据复制,它是一个 ...

  2. [置顶] iptables 性能 测试

    一直研究iptables 性能,这几天刚好有硬件资源,于是发始下手测试iptables NAT 性…… 硬件环境  : 服务器: IBM x3650 ( 4G  E5645 6核 12线程) ESXi ...

  3. android MediaCodec 音频编解码的实现——转码

    原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说 ...

  4. 17、SQL Server 备份和还原

    SQL Server 备份 恢复模式 SQL Server 数据恢复模式分为三种:完整恢复模式.大容量日志恢复模式.简单恢复模式. 完整恢复模式 默认的恢复模式,它会完整记录下操作数据库的每一个步骤, ...

  5. 实用脚本 - - addLoadEvent 页面加载完毕执行函数

    function addLoadEvent(func){ var oldonload = window.onload; if(typeof window.onload != "functio ...

  6. Java_Activiti5_菜鸟也来学Activiti5工作流_之JUnit单元测试(四)

    /**ActivitiSpringJuinitTest.java * author : 冯孟活 ^_^ * dates : 2015年9月2日 下午2:16:54 * class : activiti ...

  7. jQuery 效果 - 滑动

    jQuery 滑动方法可使元素上下滑动. 点击这里,隐藏/显示面板 实例 jQuery slideDown()演示 jQuery slideDown() 方法. jQuery slideUp()演示 ...

  8. PictureBox内的图片拖动功能

    当 PictureBox内的图片太大,超过PictureBox边框时可以用下面的方法来实现,   通过重绘来实现 :   Code bool wselected = false;  Point p = ...

  9. mysqldump备份、还原数据库路径名含有空格的处理方法(如:Program Files)

    虽然以下的方法也可以解决,不过最简单直接的,还是直接在路径前后加双引号-" ",这个方法简单有效. 首先要说明的是mysqldump.exe在哪里不重要,重要的是要处理好路径中的非 ...

  10. Spring在代码中获取bean的几种方式(转:http://www.dexcoder.com/selfly/article/326)

    方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类ApplicationObj ...