Ruby on Rails搭建环境与第一个应用

Ruby on Rails搭建环境与第一个应用

Windows不适合搞Ruby,请使用MacOS或Ubuntu

RVM

RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换。

它是学习 Ruby / Rails必不可少的工具之一。

安装

1. 官网的安装方法

$ gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ \curl -sSL https://get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile

我行不通,因为没安装gpg2。使用以下指令安装:

apt-get install -y gnupg2

还是不行,将gpg2换成gpg

$ gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

2. 修改 RVM 的 Ruby 安装源以提高安装速度

$ echo "ruby_url=https://cache.ruby-china.com/pub/ruby" > ~/.rvm/user/db

Ruby 的安装与切换

1. 列出已知的 Ruby 版本
rvm list known

2. 安装一个 Ruby 版本
rvm install 2.2.0 --disable-binary

这里安装了最新的 2.2.0, rvm list known 列表里面的都可以拿来安装。

3. 切换 Ruby 版本
rvm use 2.2.0

4. 如果想设置为默认版本,这样一来以后新打开的控制台默认的 Ruby 就是这个版本
rvm use 2.2.0 --default

5. 查询已经安装的 ruby
rvm list

6. 卸载一个已安装版本
rvm remove 1.8.7

安装 Rails

1. 安装指定版本的 Rails

$ gem install rails -v 5.1.4
$ mkdir environment # 新建 environment 目录 
$ cd environment/ # 进入 environment 目录
$ rails _5.1.4_ new hello_app

2. 如果你一切正常就跳过此步,但是我遇到了以下错误

The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.

根据提示的内容来看需要处理依赖关系,输入以下指令

bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java

另外我手贱卸载了bundle,运行以上命令的时候可能会报错Could not locate Gemfile,这是因为缺少Gemfile文件导致的,新打开一个终端窗口,在默认的路径下输入
bundle init

这样可以生成一个新的Gemfile文件

然后在之前创建的environment目录下,重新输入以下指令问题解决
rails _5.1.4_ new hello_app

3. 如果你未遇到问题或是问题解决,从这里继续

$ cd hello_app/
$ bundle install
$ rails server

4. 此时浏览器访问http://localhost:3000/,应该能看到以下界面

截屏20200429下午6.43.19.png

结语

到此,搭建环境与第一个应用就完成了,有问题请及时指出。

随便吐槽以下,我其实还是比较排斥学Ruby的,因为它的定位很尴尬,前有Python后有Node.js,企业级又是Java至霸;唯一的好处就是Ruby程序员不好招,遇到了可能会给你高薪吧(。_。)

笔记

$ gem uninstall rails  #卸载rails
$ gem list --local rails  #查看rails