ROR入门之旅
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入门之旅的更多相关文章
- Swift语言入门之旅
Swift语言入门之旅 学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...
- IOS-swift5.1快速入门之旅
快速之旅 传统表明,新语言中的第一个程序应在屏幕上打印“Hello,world!”字样.在Swift中,这可以在一行中完成: print("Hello, world!") // P ...
- 云原生 - 体验Istio的完美入门之旅(一)
作者:justmine 头条号:大数据达摩院 微信公众号:大数据处理系统 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便大家阅读,可以关注头条号或微信公众号,后 ...
- 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 ...
- Cocos2d-x入门之旅[1]场景
在游戏开发过程中,你可能需要一个主菜单,几个关卡和一个END的界面,如何组织管理这些东西呢? 和其他游戏引擎类似,Cocos也使用了场景(Scene) 这个概念 试想象一部电影或是番剧,你不难发现它是 ...
- Cocos2d-x入门之旅[2]精灵
精灵就是cocos是屏幕上移动的对象,能被我们控制,比如我们HelloWorld场景的这个图片就是精灵(Sprite) 怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node) 准确的 ...
- Cocos2d-x入门之旅[3]动作
Cocos通过动作(Action)可以让精灵动起来,把数个动作组成序列(Sequence)就能让精灵做出连续的动作,在动作中我们可以改变精灵的位置,旋转角度,缩放比例,等等 动作(Action) 首先 ...
- Cocos2d-x入门之旅[4]场景
我们之前讲了场景图(Scene Graph) 的概念,继续之前你先要知道 场景图决定了场景内节点对象的渲染顺序 渲染时 z-order 值大的节点对象会后绘制,值小的节点对象先绘制 HelloWorl ...
- Cocos2d-x入门之旅
Cocos通过动作(Action)让精灵动起来,把数个动作组成序列(Sequence)就能让精灵做出连续的动作,在动作中我们可以改变精灵的位置,旋转角度,缩放比例,等等 动作(Action)# 首先我 ...
随机推荐
- ReentrantLock与synchronized的差别
总的来说,lock更加灵活. 主要同样点:Lock能完毕synchronized所实现的全部功能 不同: 1.ReentrantLock功能性方面更全面,比方时间锁等候,可中断锁等候,锁投票等,因此更 ...
- async 与 await异步编程活用基础
[本文转自:http://www.cnblogs.com/x-xk/archive/2013/06/05/3118005.html 作者:肅] 好久没写博客了,时隔5个月,奉上一篇精心准备的文章,希 ...
- Java实现文件拷贝的4种方法.
原文地址:http://blog.csdn.net/ta8210/article/details/2073817 使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢? 最近看了看N ...
- Rouh set 入门知识1(基础定义篇)
粗糙集理论是继概率论.模糊集.证据论后又一处理不完整性和不确定性的数学工具,建立在分类机制的基础上.无需提供问题所处理的数据集合之外的任何先验信息条件.并且能有效分析不精确.不一致.不完整等各种不完备 ...
- Unity3D GUI学习
Unity3D内置有GUI, 首先,使用GUI实现一个按钮,并且点击实现触发, void OnGUI() { //GUI.Button (new Rect (10,10,50,50), "n ...
- CSS Pseudo-Element Selectors伪对象选择符
一: CSS3将伪对象选择符(Pseudo-Element Selectors)前面的单个冒号(:)修改为双冒号(::)用以区别伪类选择符(Pseudo-Classes Selectors),但以前的 ...
- Android ListView 嵌套 ImageView,如何响应ImageView的点击和长按事件
http://www.tuicool.com/articles/EZv2Uv 1.先说下嵌套在ListView中的ImageView如何响应点击事件 方法:在imageView中设置onClick属性 ...
- TextView使用Spannable设置复合文本
http://blog.csdn.net/linghu_java/article/details/32053167 Spannable 对文字的编辑减少TextView的拼接并且达到改变一串字符中的部 ...
- VS2015 Cordova Ionic移动开发(四)
一.布局 Ionic模板提供了一个侧边栏菜单示例项目和标签选项卡示例项目.本案例将两个布局进行结合,简单介绍下Ionic的布局.Ionic采用自定义标签和标准Html标签相结合.相对于全部使用div方 ...
- 【原创】ZeroClipboard的时代或许已经过去了
曾经,一个网页上要用Javascript实现网页内容的复制,其实是很麻烦的一件事情.虽然在这个问题上IE有其高大上的 window.clipboardData 方法支持直接复制指定内容,Firefox ...