ruby 是一门编程语言,ruby on rails 是 ruby 的一个 web 框架,简称 rails。

有很多人对  rails 感兴趣,但又不知道从何下手、学习路线是什么,因为在多个场合下回答过类似问题,所以决定整理成文章供大家参观。

有很多人选择直接学习 rails,在学习使用 rails 的过程中学习 ruby。但我觉得这有些本末倒置,我更推崇先学 ruby 再学 rails,在对 ruby 有了一定的了解后再学 rails 有事半功倍的效果,同时也不会那么有挫败感。

另外,不管你之前是否有过其它编程语言(如 java、php 等)的经验,都可以直接学 ruby 编程语言。

废话有些多,下面列出一些指南,注:本文写于 2011 年 11 月 4 日,并于 2013 年 11 月 7 日更新,所有软件版本都以该日为准。

开发平台选择

Mac > Linux > Windows

如果可以,最好不要在 Windows 下折腾 rails,你会浪费大量时间在解决一些莫名其妙的问题上,而这些问题可能永远不会在 linux 或 mac 下出现。

开发工具选择

Mac 下首推 Textmate,其次 Sublime Text 3,再次 Macvim,最后是一个 IDERubymine

Linux 和 Windows 下推荐 Sublime Text 3 或 vim,也可以使用 Rubymine

Ruby 版本选择

推荐 ruby 2.0,备选 ruby 1.9.3

Rails 版本选择

推荐 rails 4.0.x,也就是目前的最新版(rails 4.0.1),因为 rails 更新非常快,且从不向下兼容,所以我推荐新手直接学最新版。

Ruby 及 Rails 组合推荐

ruby 2.0 + rails 4.0.x,备选 ruby 1.9.3 + rails 4.0.x

版本控制系统选择

大家可能更熟悉 cvs 或 SVN,但在这我推荐使用 git,可以看《Pro Git》(中文)或《Git Community Book 中文版》。

书籍推荐

先学 ruby 看《Ruby编程语言》,再学 rails 看《Ruby on Rails Tutorial Learn Rails by Example》(中文版地址)

ruby 进阶看《The Well-Grounded Rubyist》,rails 进阶看《The Rails 4 Way》

注:上面有提到,因为 rails 更新非常快,且不向下兼容,同时中文翻译引进本来就慢,所以导致 rails 的简体中文资料严重滞后,不推荐阅读。

注:推荐《Ruby on Rails Tutorial Learn Rails by Example》而不是《Agile Web Development With Rails》第 4 版的原因是,我个人觉得前者写的更好更简单易懂,而且可以同时学习 rspec(rails 的测试框架)。

补充几本繁体中文的书《Ruby on Rails 實戰聖經》(还未更新到 rails 4)《Rails 101 - 火速學會 Ruby on Rails》《笨方法學 Ruby》做参考。

必看资料

rails 官方出的 guide,英文,会不断更新,内容详实,必看。

开发环境搭建

如果你使用 OS X 或 Linux 系统请阅读 Ruby China 上的「如何快速正确的安装 Ruby, Rails 运行环境」一文。

如果你使用 Windows 操作系统,请使用「railsinstaller 一键安装包」。

推荐站点

1,Ruby China http://ruby-china.org,目前国内人气比较不错的一个 ruby 和 rails 相关的社区,推荐经常上去逛逛。尤其是 Wiki 部分 更应该多看看,都是非常棒的资料。

2,“Crazy Deep” Rails Examples and Tutorials,如果英语尚可,也推荐经常阅读,这里面有很多非常有用的链接和教程,包括搭建环境等,定期更新,推荐。

重要补充

这个世界上有种东西叫 GFW,全称是 Great Firewall,俗称「墙」。(维基百科上有更详细的介绍),简单讲,它导致我们无法直接访问很多网站和服务。

这道墙严重影响到了每一个人的生活,尤其是 IT 人士,因为有无数的好网站、好服务被封了。

而对于学习 ruby 和 rails 的人来说,这道墙影响更为直接,有可能让你直接止步不前。因为有可能你连 rails 环境都搭建不起来,这样你谈何学习?

如果你 gem install xxx 出现 timeout、找不到该 gem 或长时间没有反应等情况,那就是因为 GFW 的原因,gem 安装都是通过 rubygems.org 这个网站,而该网站的资源都是放在亚马逊的 S3 服务上,不幸的是该服务的部分服务器被 GFW 封了。

为了学习 ruby 和 rails,为了获取很多非常好的资源和信息,为了能畅通无阻地访问好网站和使用一些非常棒的服务,为了打开自己的眼界,我恳请你学会翻墙,也即代理。

目前最简单、直接和方便的翻墙方式莫过于使用 VPN 了,购买 VPN 服务一年大概只需要花费几十块钱,我相信绝大部分人都能承担得起。

说得夸张一点,当你有了 VPN 后,你就拥有了一个全新的世界。

Rubygems 镜像

虽然我极力推荐你购买 VPN 服务,但你还是可以有别的选择,那就是使用由淘宝网提供的Rubygems 镜像。这样你也可以比较顺畅地下载和安装 gem,搭建 rails 开发和运行环境,使用方法直接点击前面给出的链接即可看到。

开始学 ruby on rails相关推荐

  1. Status Ruby on Rails in China - Presentation Transcript

    Slide 1: 铁道中文应用开发现状综述 2008年8月 制作发布:铁道播客 BD7LX 深圳 http://rorcast.blogger2blogger.com/ 铁道中文应用开发现状综述 20 ...

  2. [ruby on rails] 跟我学之(6)显示指定数据

    根据<[ruby on rails] 跟我学之路由映射>,我们知道,可以访问 GET    /posts/:id(.:format) 来显示具体的对象. 1. 修改action 修改 ap ...

  3. [ruby on rails] 跟我学之(7)创建数据

    通过form来创建数据,本章节将会涉及内容:创建form,用户重导向,渲染views 和 flash消息. 1. views初步 编辑 app/views/posts/index.html.erb这个 ...

  4. ruby on rails_我成为了Ruby on Rails和React的贡献者,你也可以

    ruby on rails I am really grateful to have contributed to a few open source projects, including two ...

  5. 1.1 开始起步,配置ruby on rails运行环境

    这是个复习用的傻瓜式教程. 现在才开始学的ruby on rails,我的第一次配置以失败告终,因为连一个应用程序都创建不了.后来发现rails里面的ruby版本竟然和装的不一样,原来一开始装了两个版 ...

  6. [Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序

    本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦! Part1.开发前的准备 本次的主要任务是开发第一个Rails程序.需要特别指出的是,本次我选用了一个(Paa ...

  7. Ruby on Rails -跑起来吧hello World!

    最近圆子里关于各种语言性能讨论着实很热.Milo Yip同学的C++/C#/F#/Java/JS/Lua/Python/Ruby渲染比试等,这样讨论反而让我们从更多角度去理解和认知各种语言之间的差异和 ...

  8. 从0使用Ruby on Rails打造企业级RESTful API项目实战之我的云音乐

    本节对我们项目实现的功能和知识点做一个简单的介绍,因为是RESTful API项目,所以对于后端来说基本上没有什么UI界面可展示,那我们就在关键的点,使用客户端(Android)实现的效果图. 课程简 ...

  9. [转载] Ruby、Rails、Agile的启示

    转自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_03_03_170600555 文/杨祥吉 本文作者以使用Ruby和Rails进行创业 ...

  10. Ruby on Rails 的秘笈是什么?

    Ruby on Rails 的秘笈是什么? 我们能从 Rails 框架学到的经验 文档选项 将此页作为电子邮件发送 级别: 初级 Bruce Tate ([email]bruce.tate@j2lif ...

最新文章

  1. 2018 - 待深入学习博客
  2. android 添加子view,Android基于Window.ID_ANDROID_CONTENT给定id添加子View
  3. OpenCASCADE绘制测试线束:拓扑命令之曲线和曲面拓扑
  4. python数据可视化的特点_Python数据可视化, 看这一篇就够了
  5. php-fpm和php,phpcgi和phpfpm的区别是什么
  6. 2016上半年中国云存储排行榜:阿里云居榜首
  7. Intellj IDEA 注册码 2018
  8. Centos 6.9 编译安装gcc 4.8.5
  9. Copy-and-swap
  10. 搭建Hive远程模式初始化的时候报错Access denied for user ‘root‘@‘node1‘(using password:YES)
  11. 数据交换平台-初步设计
  12. 【UOJ#60】【UR #5】怎样提高智商
  13. 老子文化主题公园将在洛阳落户
  14. 时光金科php_发布中国首个社区敬老宣言,共敬美好岁月-金科全国首届重阳敬老节温暖落幕...
  15. 杭电计算机学院2019年奖学金,关于计算机学院2019-2020学年国家励志奖学金评选的通知...
  16. Telnet - 访问8080端口并发送数据
  17. 一个恋爱小故事告诉你什么是gRPC?!
  18. JZOJ-senior-5935. 【NOIP2018模拟10.29】小凯学数学
  19. 使用VLC库实现视频播放器(WPF版)
  20. 李炎恢老师FLASH视频教程(59课时)[已完结]

热门文章

  1. 线段树维护区间最大子段和 枚举 HDU6638
  2. eui怎么在名字后面显示服务器,EUI如何打开经验条 显示经验条其实很简单
  3. 停止内耗:过一个不累的人生-读书笔记
  4. lempel ziv matlab,1.9 Lempel-Ziv算法
  5. c# 基于BouncyCastle.Crypto的国密sm2,sm4封装,与java版本兼容
  6. 系统运维工程师必备面试题库
  7. JDK包括的Java基础类库_问:JDK是Java平台的核心,Java运行环境、Java工具、Java基础类库(rt.jar)。J...
  8. 运营商大数据有哪些获客方式?
  9. python并行编程 - 线程篇
  10. 用hc05蓝牙模块,开发了几个安卓app了,越来越熟悉蓝牙app了。