在正式进入项目开发之前,我们需要先准备好我们的开发环境,这包含两种环境的准备:一是软件开发运行环境,二是软件开发基础框架的构建。
ruby生态系统的开发工作推荐在类unix环境下进行,包含不仅包括:ubuntu,Centos,Fedora,Debian,macOS等系统,本书使用的开发及运行环境主要部件包含以下:
- 系统: ubuntu 20.04 LTS X64
- Ruby版本:2.7.2
- Rails版本:6.1.3
- 数据库版本: MySQL 8.0
- nginx 版本:1.18.0
- Redis server 版本:5.0.7
- 浏览器:新版浏览器即可,推荐使用谷歌或者火狐浏览器
- 代码版本管理工具:Git 2.21
- Postman:最新版本即可
- 编辑器:用最喜欢的即可,推荐使用 idea 或者 vscode
您的环境不必要和本书保持一致,也推荐您大胆的尝试自己的开发环境,关键是明白其中原理,如果硬是要推荐,其中最最推荐使用类unix系统进行开发。
软件开发运行环境是为了程序程序的运行和开发提供基础的软件环境,而要进行真实的项目开发,我们使用的是Rails框架,有关Rails框架的介绍大家可以参考rails框架的官方说明。
-
使用rails创建项目并自动安装相关gem
$ rails new project_name
-
使用rails创建一个api项目
$ rails new project_name --api
-
使用rails创建项目,指定使用mysql数据库
$ rails new project_name -d mysql
-
使用rails创建项目,避免自动安装gem
$ rails new project_name --skip-bundle
-
更改安装gem使用的默认代码源为国内源
-
找到项目目录下的文件:Gemfile
-
使用编辑器打开Gemfile并修改:
# source "https://rubygems.org" source "http://gems.ruby-china.com"
-
保存文件。
-
-
项目安装所有的gem
$ bundle
-
指定运行命令的环境
$ RAILS_ENV=development #开发环境:默认环境 $ RAILS_ENV=production #生产环境
-
创建数据库
$ rails db:create
-
仅运行本地调试环境
$ rails server
-
运行局域网可访问环境
$ puma
-
切换目录
$ cd 目录
-
创建文件夹
$ mkdir 文件夹
-
添加指定文件
$ git add 文件
-
添加所有文件
$ git add .
-
提交变更
$ git commit -m "备注内容"
$ rails new rails-shop-api --api -d mysql --skip-bundle # 禁止自动安装gem,避免国内资源安装失败
生成目录:
rails-shop-api
├── app # 项目代码主目录,包含了MVC相关代码
│ ├── channels # Action Cable中的组件
│ │ └── application_cable
│ │ ├── channel.rb
│ │ └── connection.rb
│ ├── controllers # 控制器目录 MVC 中的 C
│ │ ├── application_controller.rb
│ │ └── concerns
│ ├── jobs # 异步任务
│ │ └── application_job.rb
│ ├── mailers # 邮件
│ │ └── application_mailer.rb
│ ├── models # 模型 MVC 中的 M
│ │ ├── application_record.rb
│ │ └── concerns
│ └── views # 视图 MVC 中的 V
│ └── layouts
│ ├── mailer.html.erb
│ └── mailer.text.erb
├── bin # 程序的 rails 脚本
│ ├── rails
│ ├── rake
│ ├── setup
│ └── spring
├── config # 配置文件所在目录
│ ├── application.rb # 主配置文件
│ ├── boot.rb # 启动文件
│ ├── cable.yml
│ ├── credentials.yml.enc
│ ├── database.yml # 配置数据库
│ ├── environment.rb
│ ├── environments # 不同环境对应的配置文件
│ │ ├── development.rb
│ │ ├── production.rb
│ │ └── test.rb
│ ├── initializers # 自动初始化脚本文件
│ │ ├── application_controller_renderer.rb
│ │ ├── backtrace_silencers.rb
│ │ ├── cors.rb
│ │ ├── filter_parameter_logging.rb
│ │ ├── inflections.rb
│ │ ├── mime_types.rb
│ │ └── wrap_parameters.rb
│ ├── locales # 国际化所在目录
│ │ └── en.yml
│ ├── master.key
│ ├── puma.rb # puma配置文件
│ ├── routes.rb # 路由文件
│ ├── spring.rb
│ └── storage.yml
├── config.ru
├── db # 迁移所在目录
│ └── seeds.rb
├── Gemfile # gem列表
├── lib # 项目公共库文件目录
│ └── tasks
├── log # 日志目录
├── public # 唯一对外开放的文件夹
│ └── robots.txt
├── Rakefile
├── README.md
├── storage
├── test # 测试文件目录
│ ├── channels
│ │ └── application_cable
│ │ └── connection_test.rb
│ ├── controllers
│ ├── fixtures
│ │ └── files
│ ├── integration
│ ├── mailers
│ ├── models
│ └── test_helper.rb
├── tmp
│ ├── cache
│ ├── pids
│ └── storage
├── .git # git项目管理目录
└── vendor # 存放第三方代码
修改:rails-shop-api/Gemfile
# source 'https://rubygems.org'
source 'http://gems.ruby-china.com'
$ cd rails-shop-api
$ bundle
$ RAILS_ENV=development rails db:create
Created database 'rails_shop_api_development'
Created database 'rails_shop_api_test'
可以看到,使用该命令会为项目创建开发和测试两个数据库。
$ puma
打开浏览器,访问: http://127.0.0.1:3000 , 应该可以看到欢迎页面
$ git add .
$ git commit -m "project init"
我们完成了项目的初始化,没有事情是简单的,所以,还要请跟上脚步,认真练习!