因为需要接手维护一个Rails搭建的网站,所以稍微学了一点Ruby,做了一些简单的笔记。
Ruby安装
- 当时的工作环境是Ubuntu16.04(Windows下使用虚拟机),通过rvm来管理系统里的ruby版本。步骤如下:
- 一个很好的参考是RVM 安装里面有一句话很有意思:“这里所有的命令都是在用户权限下操作的,任何命令最好都不要用 sudo.”
- 首先,环境中要一个curl。通过命令
dpkg -s curl
可以查看系统中是否已经有了curl。如没有就通过命令sudo apt-get install curl
来安装。 - 注意,Mac的系统里还有前置。
- Mac本身是自带一个ruby环境的;不过我安装了rvm之后就不知道Mac自带的Ruby去哪儿了,之前安装的东西都不见了,应该是覆盖了
- 和nvm不太相似,似乎没有“安装rvm之前应该先卸载Mac里的Ruby”的说法
- 开始安装rvm:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
- 如果失败了,就用命令:
curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
- 重新打开终端,rvm环境就会自动载入。
- 修改rvm的ruby安装源到Ruby China的Ruby镜像服务器:
echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db
记得每次rvm更新之后,可以确认一下这个设置。 - 确认安装:
rvm -v
看rvm版本rvm list known
看rvm可以管理的现有版本
- 安装指定版本的ruby:
rvm install [version] --disable-binary
,其中参数--disable-binary
禁止通过下载二进制文件的方式来安装,确保使用镜像安装。 和Node.js的环境对比,类似的对应关系是这样的:
nvm rvm node ruby npm gem、bundler 通过命令:
rvm docs generate-ri
可以安装文档供查阅。- rvm版本选择:
- 设置需要使用的Ruby的默认版本:
rvm use 版本号 --default
- 切换Ruby版本号:
rvm use 版本号
- 卸载一个已经安装的Ruby版本:
rvm remove 版本号
- 设置需要使用的Ruby的默认版本:
- 安装Bundler:
gem install bundler
- 安装Rails环境,这可就比在Windows下简单多了:
gem install rails -v=版本号
不通过参数选择,则安装最新版本号。
Ruby的一些语法
- 在Ruby中,一切可以独立的合法语言片段都是“表达式”,表达式都会返回值(但并不都会返回“有意义”的值),一切“值”都是对象,对象其实也是一种”常数”,一般用大写开头。
- Ruby中没有函数,全部都是“方法”,方法以
?
或!
结尾时,表明要传回一个boolean值。方法需要在某个对象上调用,这个对象可以是隐藏的。如果方法不在某个对象上显示地调用,那它就一定是在self所指的对象上调用。 Ruby中代码块在单行时可以写成
1
{...}
也可以写成
1
2
3do
...
end单引号和双引号区别:单引号原样输出,不做转义;双引号会做转义,可以写入表达式。
- Ruby中,require方法可以重复使用,但是最多只加载一次;load方法可以加载多次。
- 比起使用
for ... in
,更偏向使用sth.each{[i]}
- Ruby的一个不错的IDE: JetBrains RubyMine