初学Ruby

因为需要接手维护一个Rails搭建的网站,所以稍微学了一点Ruby,做了一些简单的笔记。

Ruby安装

  1. 当时的工作环境是Ubuntu16.04(Windows下使用虚拟机),通过rvm来管理系统里的ruby版本。步骤如下:
  2. 一个很好的参考是RVM 安装里面有一句话很有意思:“这里所有的命令都是在用户权限下操作的,任何命令最好都不要用 sudo.”
  3. 首先,环境中要一个curl。通过命令dpkg -s curl可以查看系统中是否已经有了curl。如没有就通过命令sudo apt-get install curl来安装。
  4. 注意,Mac的系统里还有前置。
    • Mac本身是自带一个ruby环境的;不过我安装了rvm之后就不知道Mac自带的Ruby去哪儿了,之前安装的东西都不见了,应该是覆盖了
    • 和nvm不太相似,似乎没有“安装rvm之前应该先卸载Mac里的Ruby”的说法
  5. 开始安装rvm:
    1. gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    2. curl -sSL https://get.rvm.io | bash -s stable
    3. 如果失败了,就用命令:curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
  6. 重新打开终端,rvm环境就会自动载入。
  7. 修改rvm的ruby安装源到Ruby China的Ruby镜像服务器:echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db记得每次rvm更新之后,可以确认一下这个设置。
  8. 确认安装:
    • rvm -v 看rvm版本
    • rvm list known看rvm可以管理的现有版本
  9. 安装指定版本的ruby:rvm install [version] --disable-binary,其中参数--disable-binary禁止通过下载二进制文件的方式来安装,确保使用镜像安装。
  10. 和Node.js的环境对比,类似的对应关系是这样的:

    nvm rvm
    node ruby
    npm gem、bundler
  11. 通过命令:rvm docs generate-ri可以安装文档供查阅。

  12. rvm版本选择:
    • 设置需要使用的Ruby的默认版本:rvm use 版本号 --default
    • 切换Ruby版本号:rvm use 版本号
    • 卸载一个已经安装的Ruby版本:rvm remove 版本号
  13. 安装Bundler:gem install bundler
  14. 安装Rails环境,这可就比在Windows下简单多了:gem install rails -v=版本号
    不通过参数选择,则安装最新版本号。

Ruby的一些语法

  1. 在Ruby中,一切可以独立的合法语言片段都是“表达式”,表达式都会返回值(但并不都会返回“有意义”的值),一切“值”都是对象,对象其实也是一种”常数”,一般用大写开头。
  2. Ruby中没有函数,全部都是“方法”,方法以?!结尾时,表明要传回一个boolean值。方法需要在某个对象上调用,这个对象可以是隐藏的。如果方法不在某个对象上显示地调用,那它就一定是在self所指的对象上调用。
  3. Ruby中代码块在单行时可以写成

    1
    {...}

    也可以写成

    1
    2
    3
    do
    ...
    end
  4. 单引号和双引号区别:单引号原样输出,不做转义;双引号会做转义,可以写入表达式。

  5. Ruby中,require方法可以重复使用,但是最多只加载一次;load方法可以加载多次。
  6. 比起使用for ... in,更偏向使用 sth.each{[i]}
  7. Ruby的一个不错的IDE: JetBrains RubyMine